Есть многомерный массив, который перебираю при помощи for in, далее в этом цикле присваеваю событие каждому элеменкту(при помощи самописной не хитрой функции), и вот наконец, все работает, все события присвоены всем объектам.
<script type="text/javascript">
$EventUse = function(Obj, Type, Listener) {
if(Obj.addEventListener) {
Obj.addEventListener(Type, Listener, false);
}
else if(Obj.attachEvent) {
Obj.attachEvent("on"+Type, Listener);
}
else {
Obj["on"+Type] = Listener;
}
};
Cont_Photo_show = function(PhotosInf) {
for(var k in PhotosInf) {
$EventUse(document.getElementById(PhotosInf[k]['Name']), "click", function() {alert(k);} );
};
}
Cont_Photo_show(PhotosInf);
</script>
Вот так все происходит события вешаються, и работают вот только если к примеру в массиве информация о десить объектах и соответственно события будем вешать на десять
объектов то при нажатии на любой из объектов будет выпадать окошко с цифрой 10.
А нужно что при нажатии на первый объект выпадало окошко с цифрой 1, и т.д.
Заранне все спасибо!!! Помогите пожалуйста!
Спустя 1 час, 18 минут, 32 секунды (21.07.2011 - 16:36) killer8080 написал(а):
а если вместо
сделать так
function() {alert(k);}
сделать так
(function(k) {return function() {alert(k);};})(k)
Спустя 58 минут, 19 секунд (21.07.2011 - 17:35) PiratXXX написал(а):
killer8080
Спасибо тебе огромное!!! Работает!!! Можешь пожалуйста теперь объяснить(расшифровать) эту конструкцию, для "особо" одаренных... Еще раз спасибо!!!
Спасибо тебе огромное!!! Работает!!! Можешь пожалуйста теперь объяснить(расшифровать) эту конструкцию, для "особо" одаренных... Еще раз спасибо!!!
Спустя 16 минут, 25 секунд (21.07.2011 - 17:51) killer8080 написал(а):
В твоём варианте функцию брала значение переменной k из глобальной области видимости, а там её значение соответствовало значению ключа последней итерации цикла.
В моём варианте переменная передаётся в виде аргумента, в безымянную функцию, соответственно каждому колбэку своё значение.
Объяснять я особо не умею, ну как бы так
О замыканиях можешь почитать здесь
В моём варианте переменная передаётся в виде аргумента, в безымянную функцию, соответственно каждому колбэку своё значение.
Объяснять я особо не умею, ну как бы так
О замыканиях можешь почитать здесь
Спустя 24 минуты, 14 секунд (21.07.2011 - 18:15) PiratXXX написал(а):
Спасибо! Сейчас буду изучать!
_____________
http://flibro.com/