Передать в функцию 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, время: 03:59. |