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

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

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

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

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

    ראשית לא הבנתי, שנית תסביר גם למה אתה נצרך לכך.

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

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

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

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

      A תגובה 1 תגובה אחרונה
      0
      • 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
                              • דף הבית
                              • קטגוריות
                              • פוסטים אחרונים
                              • משתמשים
                              • חיפוש
                              • חוקי הפורום