Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Добавление события нескольким элементам (https://javascript.ru/forum/misc/32628-dobavlenie-sobytiya-neskolkim-ehlementam.html)

BorodinKO 23.10.2012 20:42

Добавление события нескольким элементам
 
Задача обратится к элементу id="1x1", 1x2, 1x3, 2x1, 2x2 .. и т.д.
и прописать на них действия, как настоящий ламер я попробовал написать в цикле

...{{
document.getElementById(j+"x"+i).onclick = function(){alert(j+" "+i)}
}}


Нечего не получилось и я стал гуглить
нашел вот эту статью http://javascript.ru/forum/events/11...hlementam.html

и по аналогии сделал так:


<div id="stage">
</div>
<script>
var stage = document.getElementById('stage');
W = 3;

for(i=1;i<=W;i++){
	for(j=1;j<=W;j++){
		stage.innerHTML+='<div  id="'+j+"x"+i+'">'+j+' '+i+'</div>';
		document.getElementById(j+"x"+i).onclick = function(j,i){ return function(){ alert(j+" "+i) } }(j,i)
	}
}
</script>


но в итоге у меня ни чего не работает,
а вот со вариантом a1, a2, a3 у меня все норм

a_l 23.10.2012 21:38

Меняя innerHTML вы уничтожаете дочерние элементы, вместе с этим уничтожаются и события на них повешенные. Поэтому событие остаётся только на последнем элементе.
Так что добавляйте события после того, как закончили менять содержимое с помощью innerHTML, например сделав ещё один цикл для этого.


Часовой пояс GMT +3, время: 03:28.