Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   смена onclick'а (https://javascript.ru/forum/dom-window/5560-smena-onclick%27.html)

Askhsiv 23.10.2009 10:16

смена onclick'а
 
Доброго утра всем

помогите разобраться, не работает смена onclick'а в javascript'е

вот код:

function change()
{	
	for (i=1; i<4; i++)
	{
		var div = document.getElementById('div_'+i);
		div.style.background = '#777';
		div.onclick = 'alert("bbb")';
	}
}


и HTML:

<div id="div_1" style="width:50px; height:50px; margin:5px; background:#999; cursor:pointer" onclick="alert('aaa')"></div>
<div id="div_2" style="width:50px; height:50px; margin:5px; background:#999; cursor:pointer" onclick="alert('aaa')"></div>
<div id="div_3" style="width:50px; height:50px; margin:5px; background:#999; cursor:pointer" onclick="alert('aaa')"></div>
            
<div style="width:50px; height:50px; margin:15px 5px; background:#c00; cursor:pointer" onclick="change()">


при нажатии на серые дивы срабатывает alert, но после нажатия на красный, новые alert'ы на серых не срабатывают ни водном браузере, кроме оперы, ни как не могу понять в чём дело, полночи над этим просидел

Kolyaj 23.10.2009 10:39

div.onclick = function() { alert("bbb"); };

Askhsiv 23.10.2009 11:22

делает алерт, но если вместо "bbb" алертить переменную i будет показываться цифра 4 на всех трёх дивах, а если отдельно алертить div.onclick любого дива, показывает function () { alert(i); } , т.е. кажет последнее её значение оставшееся после цикла, а не с каждого его этапа

Kolyaj 23.10.2009 11:30

http://javascript.ru/basic/closure#p...-ispolzovaniya

Askhsiv 23.10.2009 11:55

Kolyaj, спасибо!

разобрался, не сразу,но адаптировал но свой скрипт)

блин, отчего же всё так не просто?

теперь со спокойной душой можно и поспать пойти)))

Kolyaj 23.10.2009 11:56

Цитата:

Сообщение от Askhsiv
блин, отчего же всё так не просто?

Это пока просто.


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