Например задаем нескольким элементам в цикле события.
for(i=0;i<10;i++){
el[i].onclick=function(){alert(i)}
}
В итоге получается ,что все имеют одинаковое значение i ,а если точнее 10.
Оно и понятно в DOM они все имеют код onClick='alert(i)',
а мне необходимо назначить alert(1),alert(2),alert(3)
тоесть задать не переменную ,а ее значение на выходе.
Ну господа проХфессионалы,скажите что нибудь умное.

Спустя 36 минут, 27 секунд (16.05.2012 - 22:06) redreem написал(а):
да есть такая проблемка. в разных случаях приходится выкручиваться поразному.
типа:
function alert2(i) {
alert(i);
}
for(i=0;i<10;i++){
el[i].onclick='alert2(' + i + ')';
}
этот пример срабатывает не во всех браузерах правда.
щас поищу последний пример, с которым сталкивался, сходу не помню, но именно такая заморочка была.
типа:
function alert2(i) {
alert(i);
}
for(i=0;i<10;i++){
el[i].onclick='alert2(' + i + ')';
}
этот пример срабатывает не во всех браузерах правда.
щас поищу последний пример, с которым сталкивался, сходу не помню, но именно такая заморочка была.
Спустя 5 минут, 51 секунда (16.05.2012 - 22:12) killer8080 написал(а):
for(i=0; i<10; i++){
el[i].onclick= function(i){
return function(){
alert(i)
}
}(i)
}
Спустя 4 минуты, 26 секунд killer8080 написал(а):
тыц
Спустя 9 минут, 27 секунд (16.05.2012 - 22:22) redreem написал(а):
а, вспомнил, вопрос решался jQuery-вским $.bind
for(i=0;i<10;i++){
$(el[i]).bind( 'click', function() { alert2(i); } );
}
for(i=0;i<10;i++){
$(el[i]).bind( 'click', function() { alert2(i); } );
}
Спустя 42 секунды (16.05.2012 - 22:22) redreem написал(а):
ну если вариант killer8080 сработает и кроссбраузерен, то думаю он лучше
Спустя 7 минут, 42 секунды (16.05.2012 - 22:30) killer8080 написал(а):
redreem
это замыкания в JS
это замыкания в JS

Спустя 16 минут, 18 секунд (16.05.2012 - 22:46) redreem написал(а):
killer8080
да я в курсе, JS вообще довольно волшебное образование, просто не всегда очевидно что-то
поэтому он мне и нравится
да я в курсе, JS вообще довольно волшебное образование, просто не всегда очевидно что-то


Спустя 1 час, 37 минут, 1 секунда (17.05.2012 - 00:23) bodja написал(а):
killer8080
Хорошая статья,правда жаль ,что такие вопросы нужно решать таким боком.
Надеялся на антипод eval
Хорошая статья,правда жаль ,что такие вопросы нужно решать таким боком.
Надеялся на антипод eval
