Прерывание цикла
Здравствуйте.
function qwerdsa(){ window.open('sdfasf'); } function swap_links(){ for(var i=0; i<=document.links.length; i++){ if(document.links[i].href=="http://www.javascript.ru/"){ alert(i); document.links[i].addEventListener("click", qwerdsa, false) || attachEvent("onclick", qwerdsa); } } } window.addEventListener("load", swap_links, false) || attachEvent("onload", swap_links); Скажите пожалуйста, почему когда находит ссылку с нужным href цикл прерывается? Например: <a href="http://www.javascript.ru">javascript0</a><br> <a href="http://www.javascript.ru">javascript1</a><br> то для javascript1 onclick не будет работать. |
Пробуйте alert(i); заменить на вывод в консоль или в div
<div id="Out"><div/> document.getElementById('Out').innerHTML=i; |
я alert(i); добавил просто чтоб увидеть что цикл прерывается на первой ссылке. Тут проблема не в алерте, а в том что этот код
document.links[i].addEventListener("click", qwerdsa, false) || attachEvent("onclick", qwerdsa);прерывает цикл, а я не могу понять почему. (даже если убрать алерт, то цикл остановится после первого совпадения) |
Цитата:
Можете подключить https://github.com/devote/spike и забыть про всякие attachEvent. Если же кода мало, можно просто создать вспомогательную функцию для кроссбраузерного addEventListener |
Спасибо, теперь работает.
|
document.links[i].addEventListener("click", qwerdsa, false) || attachEvent("onclick", qwerdsa);
Тут как минимум две ошибки, я бы написал так: document.links[i].addEventListener ? document.links[i].addEventListener("click", qwerdsa, false) : document.links[i].addEventListener.attachEvent("onclick", qwerdsa); |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
document.links[i] |
Часовой пояс GMT +3, время: 22:38. |