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

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

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

איך מכניסים פונקציה בתוך קלאס של אלמנט

מתוזמן נעוץ נעול הועבר תכנות
15 פוסטים 4 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #4

    אם הנקודה היא לחסוך את זמן הטעינה, אז עליך למצוא איך בAPI של select2 עושים טעינה עצילה. זה צורך די בנאלי ואין סיבה שזה לא ממומש עד כמה שזה נצרך.
    אני משער שהבעיה היא בעיקר מה שכתבת שהלאמנט פשוט לא קיים והוא נוצר ע"י מחלקה אחרת באופן דינמי.
    זה בהחלט לא קל. דרך פשוטה (אבל גם מלוכלכת) זה לכלול בdiv עוטף את הסקריפט עצמו - זה יכול להיות נטו קריאה לפונקציה:

    <div>
      <input type="hidden" id="tags" value="tag1,tag2" style="width: 400px;" />
      <script>initNewInput("tags");" </script>
    </div>
    

    במידה וכך אתה עושה עליך לוודא שהסקריפט יתייחס דוקא לinput הספציפי שלצידו (ע"י שינוי הID והפרמטר של initNewInput בהתאמה) כי אחרת במידה ויש יותר מאחד בדף הוא יקבל דאבל אירועים ויהיה שמח.

    יש דרך יותר טריקית שלמדתי פעם מ @magicode זה לשים אלמנט img (עם תמונה ריקה בbase64) ולשים אירוע onLoad ואז יש לך ביד את האלמנט הקורא בthis ממנו אתה יכול לנווט ל"אחיו" הinput ולהצמיד לו אישית את האירוע.

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

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

    תגובה 1 תגובה אחרונה
    2
    • A מנותק
      A מנותק
      aaron
      השיב לchagold ב נערך לאחרונה על ידי
      #5

      @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

      אבל אני לא רוצה שכשהוא טוען את הדף הראשון האתר הוא יריץ אותו

      מה הכוונה יריץ אותו? את הטעינה של הקובץ JS או את ההרצה של הפונקציה select2() ?
      מה לגבי

      $('#select2-div').ready(function(){
          //..... select2()
      })
      

      aaron.tchumim@gmail.com
      Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

      ווצאפ API - תיעוד שירות API לא רשמי.

      chagoldC תגובה 1 תגובה אחרונה
      0
      • chagoldC מנותק
        chagoldC מנותק
        chagold
        כתב ב נערך לאחרונה על ידי
        #6

        @dovid אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

        דרך פשוטה (אבל גם מלוכלכת) זה לכלול בdiv עוטף את הסקריפט עצמו - זה יכול להיות נטו קריאה לפונקציה:

        זה לא הולך לי, כיון שהתג </script> מעיף אותי מהJS שבHTML.

        הדרך השניה, לצערי לא הבנתי את המימוש.
        תודה.

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לchagold ב נערך לאחרונה על ידי
          #7

          @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

          זה לא הולך לי, כיון שהתג </script> מעיף אותי מהJS שבHTML.

          לא הבנתי.

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

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

          chagoldC תגובה 1 תגובה אחרונה
          0
          • zvizviZ מנותק
            zvizviZ מנותק
            zvizvi
            השיב לchagold ב נערך לאחרונה על ידי
            #8

            @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

            איך עושים DIV שהקלאס שלו יריץ פונקציה ?
            (אפשרי גם שאירוע אחר עליו, שירוץ רק אחרי שהבינדינג יעלה את האובייקט ל-HTML, אבל נראה לי שהראשון הוא הנכון)?

            תודה.

            אם הבנתי נכון את שאלתך, (ומבלי לגרוע מדברי @dovid ...)

            ng-init="function()" 
            

            https://zvizvi.xyz

            chagoldC dovidD 2 תגובות תגובה אחרונה
            2
            • chagoldC מנותק
              chagoldC מנותק
              chagold
              השיב לzvizvi ב נערך לאחרונה על ידי chagold
              #9

              @zvizvi אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

              @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

              איך עושים DIV שהקלאס שלו יריץ פונקציה ?
              (אפשרי גם שאירוע אחר עליו, שירוץ רק אחרי שהבינדינג יעלה את האובייקט ל-HTML, אבל נראה לי שהראשון הוא הנכון)?

              תודה.

              אם הבנתי נכון את שאלתך, (ומבלי לגרוע מדברי @dovid ...)

              ng-init="function()" 
              

              בדיוק. אבל אני לא באנגולר (..ן@dovid שוב הוכיח שהוא צדק ואני עדיין העקשן שלא עוזב את vue), אבל תודות לך מצאתי את זה בסטאק. אבדוק יותר מאוחר אם זה באמת מצליח...

              תגובה 1 תגובה אחרונה
              0
              • chagoldC מנותק
                chagoldC מנותק
                chagold
                השיב לdovid ב נערך לאחרונה על ידי
                #10

                @dovid אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                זה לא הולך לי, כיון שהתג </script> מעיף אותי מהJS שבHTML.

                לא הבנתי.

                מופיע לי באתר כל תוכן הקוד שכתוב לי אחרי ה </script>. זה בגלל שהתגית הזו היא תגית סגירה, והמנוע חושב שנגמר כל הסקריפט והוא לא יודע שזה רק איזו שורה קטנה שנכנסה כאן באמצע והוא צריך להמשיך לקרוא את שאר הקוד.
                ככה
                0_1523263850237_2a93b750-37c9-49de-8538-1aee8cc07a4a-image.png

                dovidD תגובה 1 תגובה אחרונה
                0
                • chagoldC מנותק
                  chagoldC מנותק
                  chagold
                  השיב לaaron ב נערך לאחרונה על ידי
                  #11

                  @aaron אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                  @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                  אבל אני לא רוצה שכשהוא טוען את הדף הראשון האתר הוא יריץ אותו

                  מה הכוונה יריץ אותו? את הטעינה של הקובץ JS או את ההרצה של הפונקציה select2() ?
                  מה לגבי

                  $('#select2-div').ready(function(){
                      //..... select2()
                  })
                  

                  כל הפונקציה של הselect2 צריכה לרוץ רק אחרי שה-input קיים. בפועל גם הפתרון שלך רץ לי אולי אחרי הטעינה של הכל, אבל הוא לא בודק אם הוא קיים או לא כדי להריץ אותו.

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    השיב לzvizvi ב נערך לאחרונה על ידי dovid
                    #12

                    @zvizvi אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                    @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                    איך עושים DIV שהקלאס שלו יריץ פונקציה ?
                    (אפשרי גם שאירוע אחר עליו, שירוץ רק אחרי שהבינדינג יעלה את האובייקט ל-HTML, אבל נראה לי שהראשון הוא הנכון)?

                    תודה.

                    אם הבנתי נכון את שאלתך, (ומבלי לגרוע מדברי @dovid ...)

                    ng-init="function()" 
                    

                    זה לא יעבוד אם הקוד מוזרק דינמית ע"י פונקציה חיצונית. צריך compile במונחים של אנגולר 1.

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

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

                    zvizviZ תגובה 1 תגובה אחרונה
                    2
                    • zvizviZ מנותק
                      zvizviZ מנותק
                      zvizvi
                      השיב לdovid ב נערך לאחרונה על ידי
                      #13

                      @dovid אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                      @zvizvi אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                      @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                      איך עושים DIV שהקלאס שלו יריץ פונקציה ?
                      (אפשרי גם שאירוע אחר עליו, שירוץ רק אחרי שהבינדינג יעלה את האובייקט ל-HTML, אבל נראה לי שהראשון הוא הנכון)?

                      תודה.

                      אם הבנתי נכון את שאלתך, (ומבלי לגרוע מדברי @dovid ...)

                      ng-init="function()" 
                      

                      זה לא יעבוד עם הקוד מוזרק דינמית ע"י פונקציה חיצונית. צריך compile במונחים של אנגולר 1.

                      לפעמים $scope.$apply() לבד יספיק.

                      https://zvizvi.xyz

                      תגובה 1 תגובה אחרונה
                      1
                      • dovidD מחובר
                        dovidD מחובר
                        dovid ניהול
                        השיב לchagold ב נערך לאחרונה על ידי dovid
                        #14

                        @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                        @dovid אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                        @chagold אמר באיך מכניסים פונקציה בתוך קלאס של אלמנט:

                        זה לא הולך לי, כיון שהתג </script> מעיף אותי מהJS שבHTML.

                        לא הבנתי.

                        מופיע לי באתר כל תוכן הקוד שכתוב לי אחרי ה </script>. זה בגלל שהתגית הזו היא תגית סגירה, והמנוע חושב שנגמר כל הסקריפט והוא לא יודע שזה רק איזו שורה קטנה שנכנסה כאן באמצע והוא צריך להמשיך לקרוא את שאר הקוד.
                        ככה
                        0_1523263850237_2a93b750-37c9-49de-8538-1aee8cc07a4a-image.png

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

                        "</scr" + "ipt>
                        

                        בדוגמה שלי בכל מקרה יש כמה הזרקות לעשות אז תעשה עם הTemplate strings של ES6, תראה דוגמה שעשיתי:

                        https://plnkr.co/edit/CcR9YbiPJzagt56t1IGf?p=preview

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

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

                        תגובה 1 תגובה אחרונה
                        2
                        • chagoldC מנותק
                          chagoldC מנותק
                          chagold
                          כתב ב נערך לאחרונה על ידי chagold
                          #15

                          בסוף מצאתי פונקציה מובנית בvue.
                          https://vuejs.org/v2/guide/instance.html#Instance-Lifecycle-Hooks להרצת אירועים בכל שלבי הבינדיגים.
                          אני השתמשתי בmounted.

                          ושוב תודה רבה לכולם. אין מילים!!

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

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

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

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