Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.10.2008, 22:28
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

переопределение события
Доброй ночи вам.
Вопрос по оперделению/переопределению событий.
Имеется следующий код:

//создаем таблицу
var table = document.createElement("table");
var _tr 	= new Array();

//заполняем таблицу			
//создание ячеек
for(var i=1; i<10; i++) {
_tr[i] = document.createElement("tr");
var _td = new Array();
for(var j=1; j<10; j++) {
		_td[j] = document.createElement("td");
		var newid = j;
		_td[j].id = j;
		_td[j].onclick = function() { cell_action(j) };
		_td[j].innerHTML = j;
		_tr[i].appendChild(_td[j]);
	}
	//add to table
	table.appendChild(_tr[i]);
}


Вопрос в том, что всем ячейкам таблицы присваивается одна функция cell_action(10); т.е. значение последней итерации.

Перечитал много статей, в том числе с javascript.ru, но решить проблему так и не смог.
Подскажите как сделать чтобы каждой ячейке присваивалось событие onClick со своим аргументом?
Ответить с цитированием
  #2 (permalink)  
Старый 13.10.2008, 22:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/tutorial/basic/...ispol-zovaniia
Ответить с цитированием
  #3 (permalink)  
Старый 13.10.2008, 22:40
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

попробуй так
var table = document.createElement("table");
var _tr     = new Array();
var _td    = new Array();
var id;




for(var i=1; i<10; i++) {
_tr[i] = document.createElement("tr");
for(var j=1; j<10; j++) {
        _td[j] = document.createElement("td");
        id = j;
        _td[j].id = j;
        _td[j].onclick = function() { cell_action(j) };
        _td[j].innerHTML = j;
        _tr[i].appendChild(_td[j]);
    }
    //add to table
    table.appendChild(_tr[i]);
}
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2008, 23:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

magistr_bender, вы тоже по ссылочке сходите.
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2008, 23:32
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

та уже сходил)
я просто посмотрел на этот участок
for(var i=1; i<10; i++) {
_tr[i] = document.createElement("tr");
var _td = new Array();
..........
}
и мне показалось что так не должно быть.. ибо каждая итерация обнуляет все _td и я подумал что по этому скорее всего баг возникает..
Ответить с цитированием
  #6 (permalink)  
Старый 13.10.2008, 23:59
Новичок на форуме
Отправить личное сообщение для blade-mscl Посмотреть профиль Найти все сообщения от blade-mscl
 
Регистрация: 13.10.2008
Сообщений: 7

респект ребят за точность и оперативность. разобрался.
то что не нашел на сайте нужной инфы - мой минус. признаю.

Мир.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Обработка события Deep Events/DOM/Window 12 29.07.2009 22:58
отправка файла через обработчик события submit starrich AJAX и COMET 2 13.08.2008 22:29
Dom и события кнопок Гость Events/DOM/Window 4 07.08.2008 18:53
События в javascript для формы. woo_hoo Общие вопросы Javascript 5 17.07.2008 19:13