Нужна консультация
Собственно сразу по теме
function menuFunc () { // тут что то есть } var menu = $(".menu li"); var i = 0; menu[i].addEventListener("click",menuFunc,false); i++; menu[i].addEventListener("click",menuFunc,false); i++; menu[i].addEventListener("click",menuFunc,false); "скрипт" приведенный выше выполняется без ошибок. А вот скрипт приведенный ниже выполняется с ошибкой : "Cannot read property 'addEventListener' of undefined". var menu = $(".menu li"); function menuFunc () { // тут что то есть } for(var i = 0; i <= menu.length; i++){ menu[i].addEventListener("click",menuFunc,false); } Вопрос: Почему ? Объясните или покидайте ссылки то теме(на рускоязычные ресурсы) ибо мой поиск мне ничего не дал, собственно поэтому и решил задать вопрос на форуме. |
for(var i = 0; i <= menu.length - 1; i++) |
regimentor,
for(var i = 0; i <= menu.length; i++) menu.length - количество элементов массива. i - индекс элемента массива. i = menu.length - за пределами массива |
Примного благодарен
|
regimentor,
https://jsfiddle.net/daniilKhanin/oat9aakL/1/ У меня всё работает... странно, а че ты jquery юзаешь? попробуй VanillaJs |
DynkanMaclaud,
В вашем примере, если посмотреть var menu = $(".menu li"); alert(menu.length); то увидим 3, тогда как в li прописываются значения 0,1,2 т.е. в вашем варианте ошибка тоже есть, только она маскируется исполняющей системой. Код внешне отрабатывает чисто, сообщение об ошибке видно только в консоли. Думаю, это не лучший стиль программирования - закладывать в коде ошибку в надежде на то, что система ее адекватно обработает, а потом ломать голову |
Часовой пояс GMT +3, время: 14:20. |