דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. jquery on לא עובד על אלמנט חדש

jquery on לא עובד על אלמנט חדש

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 3 כותבים 143 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    ש.ב.ח.
    כתב ב נערך לאחרונה על ידי
    #1

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

    $('.like-btn').on('click', function(){
           const post_id = $(this).data('post-id');
           const url = $(this).data('admin-url');
            const elm = $(this);
    
           elm.html('<i class="fa fa-circle-o-notch fa-spin"></i>');
    
           $.ajax({
                type: "POST",
                url: url,
                data: 'post_id='+post_id+'&action=vlr_set_post_like',
                success: function (response) {
                    const v = $(response).text();
    
                    const newElm = $('<a class="like-btn" data-post-id="' + post_id + '" data-admin-url="' + url + '"><i class="fa fa-thumbs-up">' + v + '</i></a>')
                    elm.replaceWith(newElm);
                }
            });
    
        });
    
    

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

    ל"ישאלו"... הכל תקין ויש url וגם post id וחוזרת תגובה....

    yossizY תגובה 1 תגובה אחרונה
    0
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לש.ב.ח. ב נערך לאחרונה על ידי yossiz
      #2

      @ש-ב-ח אמר בjquery on לא עובד על אלמנט חדש:

      לפי מיטב זכרוני

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

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      2
      • yossizY מנותק
        yossizY מנותק
        yossiz
        כתב ב נערך לאחרונה על ידי yossiz
        #3

        @ש-ב-ח עכשיו קראתי את התיעוד ואני רואה שלמרות שסברתי היתה נכונה אבל בכל זאת זכרונך גם צודק...
        יש ארגומנט נוסף שאפשר להביא לפונקציית ‎$.on שגורם לו לעבוד על אלמנטים חדשים.
        אם הבנתי נכון, מדביקים את ה-handler לאלמנט אבא ושמים בארגומנט השני selector שגורם ש-jquery מפעיל את ה-handler רק אם האירוע קורה על אלמנט שתואם את ה-selector.

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        ש תגובה 1 תגובה אחרונה
        4
        • ש מנותק
          ש מנותק
          ש.ב.ח.
          השיב לyossiz ב נערך לאחרונה על ידי
          #4

          @yossiz אמר בjquery on לא עובד על אלמנט חדש:

          אם הבנתי נכון, מדביקים את ה-handler לאלמנט אבא ושמים בארגומנט השני selector שגורם ש-jquery מפעיל את ה-handler רק אם האירוע קורה על אלמנט שתואם את ה-selector.

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

          כך:

          $('body').on('click', '.element-selector', function(){
           //********//
          })
          
          תגובה 1 תגובה אחרונה
          1
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            פעם היה את https://api.jquery.com/live/
            כיום משתמשים כפי שאמרתם והורסים את כל ה"קסם" 🙂

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            4

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום