onclick у генерируемых элементов
Возникла проблема.
Есть набор из определенного количества div-ов, при клике на каждый из которых происходит какое-либо событие. Делаю так: function loading() { object = document.getElementById('miniForm'); for ( var i=0; i<object.childNodes.length; i++ ) { object.childNodes[i].onclick = function() { alert(i); } } } <body onload="loading();"> <div id="miniForm"><div>a1</div><div>a2</div><div>a3</div><div>a4</div><div>a5</div><div>a6</div><div>a7</div><div>a8</div></div> </body> Проблема в том, что при клике на div алерт всегда пишет "8". Подскажите, пожалуйста, как это можно исправить. |
function loading() { object = document.getElementById('miniForm'); var set = function(o,x){ o.onclick = function() {alert(x)} } for ( var i=0; i<object.childNodes.length; i++ ) set(object.childNodes[i],i); } |
Спасибо большое, работает. :)
|
пожалуйста :)
|
Столкнулся с такой же проблемой. Не подскажете, почему первоначальный вариант кода выдаёт такое поведение?
|
потому что i в конце имеет значение равное длине списка. А передаётся в функцию через жопу... Чтобы передать в нужном виде (по значению) Надо вынести функцию...
|
Часовой пояс GMT +3, время: 05:21. |