ABA


"שאלה לגבי javascript events,"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #10100 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10100
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   11:15   28.03.11   
אל הפורום  
  שאלה לגבי javascript events,  
 
   יש את הפקודה הבאה:

<a href="http" onmouserover="alert('asdasd');return false;><img src="" /></a>

יש אחרי הפקודה של ה alert את הפקודה return false.
לשם מה זה?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מבטל את המעבר ללינק לאחר ה alert נחמיה  28.03.11 14:37 1
     אז בשביל מה לתת קישור מלכחתחילה? dvir8 28.03.11 16:04 2
         באופן אידיאלי, אכן מומלץ להשתמש ב span נחמיה  29.03.11 03:00 3
             תודה, לגבי ה return false; זה רק לגבי קישורים? dvir8 29.03.11 12:20 4
                 לא בהכרח נחמיה  30.03.11 20:06 5
  זה תיכנות לא נכון לכתוב בצורה הזאת: akoka2 02.04.11 01:26 6
  תודה רבה, אני אחפש מידע על מה שכתבת. dvir8 02.04.11 13:22 7

       
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   14:37   28.03.11   
אל הפורום  
  1. מבטל את המעבר ללינק לאחר ה alert  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   16:04   28.03.11   
אל הפורום  
  2. אז בשביל מה לתת קישור מלכחתחילה?  
בתגובה להודעה מספר 1
 
   פשוט זאת דוגמה מהספר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   03:00   29.03.11   
אל הפורום  
  3. באופן אידיאלי, אכן מומלץ להשתמש ב span  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   12:20   29.03.11   
אל הפורום  
  4. תודה, לגבי ה return false; זה רק לגבי קישורים?  
בתגובה להודעה מספר 3
 
   או שישנם עוד אלמנטים שמגיבים בצורה שונה כשהפקודה מצורפת?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   20:06   30.03.11   
אל הפורום  
  5. לא בהכרח  
בתגובה להודעה מספר 4
 
   תיאורתית זה יכול לשמש בעוד דברים (למשל, form).


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka2

   01:26   02.04.11   
אל הפורום  
  6. זה תיכנות לא נכון לכתוב בצורה הזאת:  
בתגובה להודעה מספר 0
 
   קודם כול לא נכנס לרעיון שמאחורי הפרדת התנהגות מהעיצוב, קודם כול אני אבהיר, שהקוד הזה אומנם יעבוד, אבל הדפדפן ייתאמץ כדי להבין אותך:

בJavascript כשמתעסקים עם Events קיים גם המושג Event Handler,
הHandler נועד לבצע את הפעולה ברגע שהאירוע נורה.

עכשיו בPure Javascript יש מספר דרכים לכתוב את מה שכתבת:


element.onmouseover = function () { };


var func = function () { };
element.onmouseover = func;



element.addEventListener("mouseover", function () { });

עכשיו עקרונית כול הפעולות האלה מבצעות את אותו תהליך, אבל ואבל חשוב, לחלק מהן יש ייתרון משמעותי על השניה:

למשל בקטע קוד הראשון אחנו נשתמש בעיקר כשאנחנו רוצים להעביר פונקציה פשוטה אל תוך האירוע או להעביר פונקציה שבתוכה אנחנו מבצעים apply/call לפונקציות אחרות ויש לנו גם שליטה על הscope של אותן פונקציות.

הקטע קוד השני הוא בדרך כלל כשאנחנו מעוניינים לשמור על הscope אז אנחנו יוצרים את הפונקציה מחוצה לו כותבים את הקוד כרגיל(אם בתוך אובייקט אז משתמשים בthis רגיל מתי שצריכים), ואז פשוט מעבירים reference לאותה פונקציה ואין לנו שום דאגה אם הthis שלנו קיים או לא....

הקטע קוד השלישי הוא בערך כמו הראשון, אני חושב שהוא אפילו טיפה יותר יעיל, כי הראשון סביר להניח עוטף אותו וכאן אנחנו שלב אחד לפני קריאה לNative.

עכשיו הבעיה הקוד שלך היא קודם כול הreturn הזה, אם אתה עושה return לפחות תעטוף את הכול בפונקציה, אחרת מה שהדפדפן עושה זה לייצר פונקציה אנונימית בשבילך, ורק אז להריץ את הקוד, אם תכניס פונקציה מראש, זה כבר יהיה טוב.

גם זאת המטרה בEvents להעביר תמיד callback רוב הEventים חוץ מטעינה של העמוד הם אסינכרונים(למרות שאני חושב שיש גם onunload) אבל זה לא משנה פעולה אסינכרונית צריכה לקבל callback תמיד, ותאמין לי גם שזה תיכנות הרבה יותר נכון.

חוץ מזה תעביר הכול לקובץ JS נפרד, לעבוד עם JS בתוך הHTML זה זוועת עולם.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   13:22   02.04.11   
אל הפורום  
  7. תודה רבה, אני אחפש מידע על מה שכתבת.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net