Передать в функцию click значение из for
День добрый коллеги.
Вопрос из области для новичков, но ответ так и не смог найти. Есть код (выдраный из контекста), еще я использую raphael.js var sin_2 =0; var paper_all = new Array(); function drawZ (){ paper.clear(); var all = id_ar.length-1; sin_2+=0.007; for(i=0;i<=all;i++){ var sin = sin_2 + (0.7*i); var x = Math.sin(sin)*radius+center.x; var y = Math.cos(sin)*radius+center.y; paper_all[i] = new Object; paper_all[i].p = paper.text(x,y,number_ar[i]); paper_all[i].p.attr("font-size", "30"); paper_all[i].id = i; paper_all[i].p.click(function() { //hand(id_ar[i]); alert(paper_all[i].id ); // вот так не работет }); }//for }//end drawZ Задача передать в alert значение i на момент инкреминации (счетчик цикла), если написать типа alert(i); то будет i на момент окончание цикла (i=0;i<9;i++) тоесть 9 Как сделать счелкаешь на элементы и будет 1 на первом, 2 на втором и т.д.? Я уже второй раз сталкиваюсь, да и если что то другое вы видите можно лучше написать я только за. |
Цитата:
|
А можно для меня разжевать - на моем примере? Там ни где нет ситуации когда функция генерит и навешивает обработчики по for. Для одного элемента = вызова и у меня работает.
|
Наверно прозрачней всего заполнить атрибут data= на теге
Хотя можно конечно к объекту добавить новое свойство |
Data???? Это от куда взялось (у меня там нет тэгов). Пожалуста мысли оформляйте в код, то есть подставил работает не работает. А так это просто рассуждения.
|
Цитата:
Цитата:
Цитата:
Цитата:
|
flyfrog,
тут же всё разжёвано Пример ошибочного использования var sin_2 =0, paper_all = new Array(); function drawZ (){ paper.clear(); var all = id_ar.length; sin_2+=0.007; for(i=0;i<all;i++){ var sin = sin_2 + (0.7*i); var x = Math.sin(sin)*radius+center.x; var y = Math.cos(sin)*radius+center.y; paper_all[i] = new Object; paper_all[i].p = paper.text(x,y,number_ar[i]); paper_all[i].p.attr("font-size", "30"); paper_all[i].id = i; paper_all[i].p.click((function(a) { return function () { alert(paper_all[a].id ); } })(i)); } } |
BETEPAH,
:-? чёто я с кодом поспешил сорри |
Спасибо. Хоть вы и сказали что я знал и ни капли не помогли спасибо. Решение данного "глюка" у меня есть но оно не красивое (для изящнего js) я думал другие уже придумали как это решается - красиво.
|
рони,
:cray: |
Часовой пояс GMT +3, время: 17:07. |