Определение свойств массиву элементов
Доброго времени суток!
Не могу понять, почему не работает нижеследующий код?
var elems = document.getElementsByClassName('anchor');
function addOnWheel(index, handler) {
if (index < elems.length) {
elems[index].addEventListener('wheel', handler, false);
}
}
for (var i = 0; i < elems.length; i++) {
addOnWheel(i, function(e) {
elems[i].style.backgroundColor = 'green';
})
}
В тоже время, замечательно работает следующий:
var elems = document.getElementsByClassName('anchor');
function addOnWheel(index, handler) {
if (index < elems.length) {
elems[index].addEventListener('wheel', handler, false);
}
}
// for (var i = 0; i < elems.length; i++) {
addOnWheel(0, function(e) {
elems[0].style.backgroundColor = 'green';
});
addOnWheel(1, function(e) {
elems[1].style.backgroundColor = 'green';
});
// }
т/е в цикле не работает в ручную работает В чем разница? |
alexkirsanov850@gmail.com,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
var elems = document.getElementsByClassName('anchor');
[].forEach.call(elems, function(el){
el.addEventListener('wheel', function(){
el.style.backgroundColor = 'green';
}, false);
});
|
Цитата:
Пример ошибочного использования |
Но если всё-таки говорить о первом примере (который не работает), то там в цикле при объявлении переменной вместо for (var i = 0; i < elems.length; i++) { нужно for (let i = 0; i < elems.length; i++) {
|
| Часовой пояс GMT +3, время: 17:23. |