Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как назначить событие ячейки, ячейки создаются insertCell-ом 
:(
    Опции темы
Ciber SLasH
Дата 15.5.2005, 04:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Не пойму как добавить обработчик события ячейки, создаваемой через вставку с помощью "insertCell" в строку.

Есть кусок кода:
Код

// Ссылка на объект с именем "dateListTable" (таблица)
dateTable = document.getElementById('dateListTable')
for (j = 0; j < 6; j++) {    // цикл по строкам таблицы
  row = dateTable.insertRow(dateTable.rows.length)  // ссылка на вставляемую строку в конец таблицы dateTable
  for (i = 0; i < 7; i++) {  // цикл по столбцам таблицы
    atr = document.createAttribute('id')  // создаём атрибут с именем "id"
    atr.nodeValue = 'd' + i + 'r' + j     // присваиваем значение созданному атрибуту
    // Вставляем ячейку в конец строки row и добавляем в неё созданный атрибут
    row.insertCell(row.cells.length).setAttributeNode(atr)
    row.cells[i].style.cursor = 'hand'
  }
}

Как добавить текущей ячейки "row.cell[i]" атрибуты "onMouseOver=MouseEnter(this)",
"onMouseOut=MouseLeave(this)", "onClick=MouseClick(this)" ?
Перепробовал несколько способов, но никакой не заработал... smile

Всё это нужно для подсветки текущей позиции курсора и для клика по дате в календаре.
PM   Вверх
Aliance
Дата 15.5.2005, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



  • Через setAttribute
    Код

    row.cell[i].setAttribute("onmouseout", row.cells.length);
  • Через сценарий:
    Код

    row.cell[i].onmouseout = MouseLeave(this);

PM MAIL WWW ICQ Skype   Вверх
Ciber SLasH
Дата 15.5.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Сделал вот так:
Код

// Ссылка на объект с именем "dateListTable" (таблица)
dateTable = document.getElementById('dateListTable')
for (j = 0; j < 6; j++) {    // цикл по строкам таблицы
  row = dateTable.insertRow(dateTable.rows.length)  // ссылка на вставляемую строку в конец таблицы dateTable
  for (i = 0; i < 7; i++) {  // цикл по столбцам таблицы
    row.insertCell(row.cells.length)
    row.cells[i].setAttribute('id', 'd' + i + 'r' + j)
    atr = document.createAttribute('onMouseOver')
    atr.nodeValue = MouseEnter(this)
    row.cells[i].setAttributeNode(atr)
    row.cells[i].style.cursor = 'hand'
  }
}

Можно ли как-то проще сделать в выше приведённом коде с атрибутами или нет ?

Ниже есть обработчик:
Код

function MouseEnter(obj) {
  obj.style.backgroundColor = 'silver'
}

Но так не работает, говорит объект style есть null. Походу передаваемая ссылка this на объект не является ссылкой на созданную ячейку...
PM   Вверх
Sardar
Дата 15.5.2005, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Юзайте традиционные события и будет вам счастье без изврата.

Код
// Ссылка на объект с именем "dateListTable" (таблица)
dateTable = document.getElementById('dateListTable')
for (var j = 0; j <6; j++) {    // цикл по строкам таблицы
  row = dateTable.insertRow(dateTable.rows.length)  // ссылка на вставляемую строку в конец таблицы dateTable
  for (i = 0; i < 7; i++) {  // цикл по столбцам таблицы
    row.insertCell(row.cells.length)
    row.cells[i].setAttribute('id', 'd' + i + 'r' + j)
    row.cells[i].onmouseover=MouseEnter;
    row.cells[i].style.cursor = 'hand'
  }
}



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ciber SLasH
Дата 15.5.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



Спасибо Sardar... кстати можно на ТЫ, как-то неловко когда меня на ВЫ называют (вроде ещё молодой smile ) !!
Цитата
row.cells[i].onmouseover=MouseEnter;

то что надо. Я дурак пытался ещё передать параметр в MouseEnter, вот и не получалось.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.