Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Неправильное присвоение элементам событий (https://javascript.ru/forum/events/11855-nepravilnoe-prisvoenie-ehlementam-sobytijj.html)

maxagg 17.09.2010 13:00

Неправильное присвоение элементам событий
 
Здраствуйте.
Есть код:

function addRow(id){
var tbody = document.getElementById
(id).getElementsByTagName("TBODY")[0];
var j = tbody.rows.length;
var children = tbody.getElementsByTagName("TR")[0].cells.length;
var row = document.createElement("TR");
for(var i=0;i<children; i++) {
var td = document.createElement("TD");
td.appendChild(document.createTextNode(j+' '+i));
row.appendChild(td);
if (td.attachEvent) { // IE
td.attachEvent ("onclick", function () {activ(id,j,i-1);});
}
}

tbody.appendChild(row);
}
В цикле создаю ячейки таблицы (жирный текст)
и присваиваю им событие onclick (подчеркнутый текст)
Дело в том что код присваивает всем создаваемым ячейкам последнее событие.
Подскажите как исправить ситуацию, чтобы к каждой ячейке прописывалось свое событие
Заранее благодарствую

Kolyaj 17.09.2010 13:13

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

maxagg 19.09.2010 12:58

Спасибо огромное, открыли глаза.:blink:

С вопроса "Почему это не работает?" люди обычно начинают изучение замыканий.

Именно с этого вопроса и начал:yes:


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