למה זה לא מצליח - JS
- 
- 
@ש-ב-ח אמר בלמה זה לא מצליח - JS: מי זה this? 
 אתה מצביע כנראה לאלמנט הלא נכון, מי קורא לפונקציה? אם זה מאירוע, אתה צריך לגשת ליעד של האירוע כך:function toListRegisterd(e){ var selected = $(e.target).data('index'); alert(selected); }
- 
@ש-ב-ח אמר בלמה זה לא מצליח - JS: מי זה this? 
 אתה מצביע כנראה לאלמנט הלא נכון, מי קורא לפונקציה? אם זה מאירוע, אתה צריך לגשת ליעד של האירוע כך:function toListRegisterd(e){ var selected = $(e.target).data('index'); alert(selected); }@ש-ב-ח אם הבנתי נכון, פונקציית dataשל jquery לא בנוי לגמרי על מאפייני data של html.
 עיין כאן: https://api.jquery.com/data/#data-html5 שאחרי הקריאה הראשונה ל-dataעל אלמנט כלשהו, לא תזוהו שינויים למאפייני data.Since jQuery 1.4.3, data-* attributes are used to initialize jQuery data. An element's data-* attributes are retrieved the first time the data() method is invoked upon it, and then are no longer accessed or mutated (all values are stored internally by jQuery). @יוסף-בן-שמעון אמר בלמה זה לא מצליח - JS: אם זה מאירוע, אתה צריך לגשת ליעד של האירוע כך: למה לא נכון להשתמש ב- this?
 https://stackoverflow.com/questions/17665489/using-this-inside-an-event-handler
- 
@ש-ב-ח תשנה ל alert(this.attributes['data-index'].value);או alert(this.dataset.index);תדווח אם זה עובד. 
- 
הצילום מסך שלך לא אומר לי כלום. הוא גם מבוסס על הנחה (שהפונקציה מדברת על אותו אלמנט המצולם). האמת שכיון שאני לא יודע מי ואיך קורא לפונקציה, אז @יוסף-בן-שמעון צודק לחלוטין שיש לנו פה שאלה מאוד חלקית. 
 יש לך עוד כיוון בדיקה (תדפיס עםconsole.log(this)את האלמנט ותראה מה הפלט), או שתראה לנו את קוד ההרשמה לאירוע.
- 
הצילום מסך שלך לא אומר לי כלום. הוא גם מבוסס על הנחה (שהפונקציה מדברת על אותו אלמנט המצולם). האמת שכיון שאני לא יודע מי ואיך קורא לפונקציה, אז @יוסף-בן-שמעון צודק לחלוטין שיש לנו פה שאלה מאוד חלקית. 
 יש לך עוד כיוון בדיקה (תדפיס עםconsole.log(this)את האלמנט ותראה מה הפלט), או שתראה לנו את קוד ההרשמה לאירוע.
- 
הצילום מסך שלך לא אומר לי כלום. הוא גם מבוסס על הנחה (שהפונקציה מדברת על אותו אלמנט המצולם). האמת שכיון שאני לא יודע מי ואיך קורא לפונקציה, אז @יוסף-בן-שמעון צודק לחלוטין שיש לנו פה שאלה מאוד חלקית. 
 יש לך עוד כיוון בדיקה (תדפיס עםconsole.log(this)את האלמנט ותראה מה הפלט), או שתראה לנו את קוד ההרשמה לאירוע.
- 
@ש-ב-ח בדיוק! 
 אני מציע לך טיפ שיקל עליך את העבודה: במקום שתהיה שתקשר פונקציה כללית לאירועי השינוי של כלל הradio ובתוך הפונקציה תבדוק את ערך הdata-index,
 תוכל להזניק פונקציה אישית לכל אחד, שתקרא לפונקציה הכללית עם ארגומנט עם הID המתאים:input.on('change', function() { toListRegisterd(no); } );ולשנות את הפונקציה: function toListRegisterd(id){ alert(id); }כמובן שאם הקוד קצר (ובהתאם לטעמך אולי גם אם זה ארוך) תוכל לחסוך את toListRegisterd ולהשתמש ישירות בפונקציה האנונימית שבפקודת ההרשמה לאירוע. טיפ נוסף: תעבור לangularjs. 
- 
@ש-ב-ח בדיוק! 
 אני מציע לך טיפ שיקל עליך את העבודה: במקום שתהיה שתקשר פונקציה כללית לאירועי השינוי של כלל הradio ובתוך הפונקציה תבדוק את ערך הdata-index,
 תוכל להזניק פונקציה אישית לכל אחד, שתקרא לפונקציה הכללית עם ארגומנט עם הID המתאים:input.on('change', function() { toListRegisterd(no); } );ולשנות את הפונקציה: function toListRegisterd(id){ alert(id); }כמובן שאם הקוד קצר (ובהתאם לטעמך אולי גם אם זה ארוך) תוכל לחסוך את toListRegisterd ולהשתמש ישירות בפונקציה האנונימית שבפקודת ההרשמה לאירוע. טיפ נוסף: תעבור לangularjs. 
- 
@dovid אמר בלמה זה לא מצליח - JS: טיפ נוסף: תעבור לangularjs. לאט... כדי לעבור צריך קודם להכיר את הדירה הראשונה... 
 לפי מה שהבנתי אנגולר היא לא קלה אז למה לקפוץ ישר למים העמוקים?@ש-ב-ח אני ראיתי שאתה משתמש עם jQuery. 
 אז angularjs זה פשוט ספריה אחרת, והיא כן קלה מאוד, שטובה ממנה בהרבה (בשביל התוצאות המצופות).נ.ב. שים לב שאנגולר בד"כ מתייחס לאנגולר 2+ שזה ממש מסובך, ואילו angularjs מתייחס לאנגולר 1 שזה ממש ספריה חמודה כמו jQuery. 
- 
@ש-ב-ח אני ראיתי שאתה משתמש עם jQuery. 
 אז angularjs זה פשוט ספריה אחרת, והיא כן קלה מאוד, שטובה ממנה בהרבה (בשביל התוצאות המצופות).נ.ב. שים לב שאנגולר בד"כ מתייחס לאנגולר 2+ שזה ממש מסובך, ואילו angularjs מתייחס לאנגולר 1 שזה ממש ספריה חמודה כמו jQuery. 
- 
@ש-ב-ח אם הבנתי נכון, פונקציית dataשל jquery לא בנוי לגמרי על מאפייני data של html.
 עיין כאן: https://api.jquery.com/data/#data-html5 שאחרי הקריאה הראשונה ל-dataעל אלמנט כלשהו, לא תזוהו שינויים למאפייני data.Since jQuery 1.4.3, data-* attributes are used to initialize jQuery data. An element's data-* attributes are retrieved the first time the data() method is invoked upon it, and then are no longer accessed or mutated (all values are stored internally by jQuery). @יוסף-בן-שמעון אמר בלמה זה לא מצליח - JS: אם זה מאירוע, אתה צריך לגשת ליעד של האירוע כך: למה לא נכון להשתמש ב- this?
 https://stackoverflow.com/questions/17665489/using-this-inside-an-event-handler@yossiz אמר בלמה זה לא מצליח - JS: למה לא נכון להשתמש ב- this?
 https://stackoverflow.com/questions/17665489/using-this-inside-an-event-handlerלא הכרתי, תודה רבה 
 


