Прерывание цикла
Здравствуйте.
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, время: 08:46. |