הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה עם התאמת JS בטאבלט (https://hosts.co.il/forums/showthread.php?t=94564)

trupix 03-01-12 13:14

בעיה עם התאמת JS בטאבלט
 
הי,

יש לי עמוד ראשי מסויים, העמוד טוען JS של חלון צף הנקרא Fancybox.


כדי להציג את החלון אני שם את הקוד הזה בעמוד:

PHP קוד:

<class="fancy" href="page.php">
open fancy
</a

הקישור הזה יפתח לי את fancybox, ויציג לי בAJAX את page.php


אבל, כאשר אני מנסה "להזריק" קוד HTML לעמוד בעזרת jQuery, לדוגמא:
PHP קוד:

<class="fancy" href="otherpage.php">
open other page
</a

זה כן עובד במחשבים רגילים, אבל לא בטאבלט של סמסונג..
להערכתי - התוצאה של "ההזרקת" קוד בעצם גורמת לטאבלט להתייחס לקוד שהוזרק בפני עצמו , ולא מחילה עליו את ההגדרות של אותו עמוד עם הטעינה של הJS וכו'..
והעובדה שלא חלים עליו הגדרות העמוד, גורמות בעצם ללינק שהתווסף להיפתח בעמוד אחר לגמרי..

מספיק לי התקן אחד שלא תומך וזה לא טוב :(

ניסיתי להכניס את הגדרות הJS לתוך הקוד ש"מוזרק" אבל זה לא עובד, וגם גורם לעמוד להיפתח אחרי טעינה ממושכת ואיטית..

מקווה שמישהו יוכל לעזור .. תודה רבה רבה..

IgalSt 03-01-12 13:26

נסה אולי לאתחל מחדש את ה-fancybox אחרי שאתה דוחף את ה-HTML...

trupix 03-01-12 13:28

הי,

טעינת הfancybox מתבצעת בחלק הראשי של העמוד (head).. זה לא יצור בעיות?
אני ינסה את זה בכול אופן

תודה.. אני יעדכן עוד מספר דקות!


עריכה:
עדיין לא עובד :(

התכוונת להוריד את הקוד של טעינת הJS, לחלק שמתחת לjquery?
זה כל כך הזוי, למה הדפדפן המובנה מתייחס אל הקוד כאלמנט בפני עצמו?

IgalSt 03-01-12 15:01

הרי איפשהו בקוד שלך אתה עושה משהו כזה:
HTML קוד:

$(".fancybox").fancybox();
שזה בעצם אתחול של הפאנסיבוקס.
תעשה את זה שוב אחרי שאתה מזריק תוכן.

trupix 03-01-12 16:22

הי,

יגאל - אשריך.
אני לא יודע אם הייתי עולה על זה.

תודה.

IgalSt 03-01-12 16:31

שמח שיכולתי לעזור :)

למען השלמות, אני רק רוצה להסביר למה זה עובד גם:
לא התעמקתי יותר מדיי בקוד של FancyBox, אבל סביר להניח שהוא מצמיד ארועים (events) לחלקים מה-DOM ובצורה כזאת הוא עובד. הוא עושה את זה אחרי שהעמוד עלה (כי אז אתה מזמן את פקודת האתחול שלו). בכך שאתה מזריק HTML חדש, אתה בעצם יוצר DOM חדש שאליו לא הוצמדו הארועים המתאימים.
מנגד, זה לא מסביר למה בדפדפנים אחרים הכל תקין. בכל אופן, אני מאמין שהבעיה סובבת סביב הנושא הזה.

hostmygame 04-01-12 19:55

אני לא בטוח שהטאבלט תומך JS או JQUERY בצורה מלאה...

IgalSt 04-01-12 20:14

ציטוט:

נכתב במקור על ידי hostmygame (פרסם 830933)
אני לא בטוח שהטאבלט תומך JS או JQUERY בצורה מלאה...

על טאבלטים בד"כ יש דפדפנים מבוססי Webkit, מה שאומר שהם תומכים ב-JS (וכנגזרת מכך גם ב-jQuery כי זה בעצם JS) בצורה יותר טובה מחלק מהמחשבים (בעיקר האלה שמריצים IE לדורותיו).

Second 05-01-12 11:32

למרות שכבר העניין סודר,

כנראה בתוך הקוד FANCYBOX שלך אתה עושה EVENT של:
קוד:

$("#element").click(function(){});
אתה פשוט צריך להחליף את זה עם
קוד:

$("#element").live('click', function(){});
הפונקציה LIVE מבטיחה שגם אם נוצר אלמנט חדש, אז הפונקציה תחול גם עליו.

IgalSt 05-01-12 21:41

ציטוט:

נכתב במקור על ידי Second (פרסם 830980)
למרות שכבר העניין סודר,

כנראה בתוך הקוד FANCYBOX שלך אתה עושה EVENT של:
קוד:

$("#element").click(function(){});
אתה פשוט צריך להחליף את זה עם
קוד:

$("#element").live('click', function(){});
הפונקציה LIVE מבטיחה שגם אם נוצר אלמנט חדש, אז הפונקציה תחול גם עליו.

למרות שמה שאתה אומר נכון (live vs bind),
FancyBox הוא פלאגאין מוכן ואין שום בעיה לערוך את הקוד שלו, אך אישית לא הייתי נוגע אם אתחול מחדש עוזר.


כל הזמנים הם GMT +2. הזמן כעת הוא 01:39.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ