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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в js определить события созданной строки табл 
:(
    Опции темы
юзер
Дата 28.6.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 28.6.2009

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



В java-script создаю строку таблицы для Internet Explorer

        pd = window.opener.document;
        var tbody = pd.getElementById('user_table').getElementsByTagName("TBODY")[0];
        sel_row = pd.getElementById('user_table').rows.length;
        var row = pd.createElement("TR");
        row.id = 'row1';
        var td1 = pd.createElement("TD");
        td1.appendChild(pd.createTextNode('col1'));
        td1.id = 'id1';
        var td2 = pd.createElement("TD");
        td2.appendChild (pd.createTextNode('col2'));
        td2.id = 'analyzis_interval1';
        var td3 = pd.createElement("TD");
        td3.appendChild (pd.createTextNode('col3'));
        td3.id = 'nazv_report1';
        var td4 = pd.createElement("TD");
        td4.appendChild (pd.createTextNode('col4'));
        td4.id = 'srok_input_data1';
        row.appendChild(td1);
        row.appendChild(td2);
        row.appendChild(td3);
        row.appendChild(td4);
        tbody.appendChild(row);

Строка успешно создается.

После этого определяю для этой строки события

1-й способ
row.onclick = function anonymous() { alert(1) };
row.onmouseover = function anonymous() { alert(2) };
row.onmouseout = function anonymous() { alert(3) };

2-й способ (присваиваю событиям строковые значения)
row.onclick = 'function anonymous() { alert(1) }';
row.onmouseover = 'function anonymous() { alert(2) }';
row.onmouseout = 'function anonymous() { alert(3) }';

3-й способ
row.attachEvent('onclick',func1);
row.attachEvent('onmouseover',func2);
row.attachEvent('onmouseover',func3);

Проблема в том, что в html-коде таблицы для вновь созданной строки эти события отсутствуют. Это видно, если, например, вывести в диалоговое окно alert(pd.getElementById('user_table').innerHTML). И, естественно, строка не реагирует на события.

Что в этой ситуации делать ?
PM MAIL   Вверх
Padonak
Дата 30.6.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.5.2008
Где: Ростов-на-Дону

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



Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN".
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Маленькое окно</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script language="JavaScript" type="text/javascript">
<!--
var cell_attr = new Array(
{id: "id1", txt:"col1"},
{id: "analyzis_interval1", txt:"col2"},
{id: "nazv_report1", txt:"col2"},
{id: "srok_input_data1", txt:"col3"}
);

function add_row(){
var tab = opener.document.getElementById("user_table");
var lastRow = tab.rows.length;
var newRow = tab.tBodies[0].insertRow(lastRow);
for(var i = 0; i < cell_attr.length; i++){
var newCell = newRow.insertCell(i);
newCell.setAttribute("id", cell_attr[i]["id"] + "_" + lastRow);
newCell.innerHTML = "<span onclick='javascript:alert(this.parentNode.id)'>" + cell_attr[i]["txt"] + "<\/span>";
}
setTimeout("window.close()", 100);
}
//-->
</script>
</head>
<body onload="add_row()">
<br /><br /><br />
</body>
</html>


Это сообщение отредактировал(а) Padonak - 30.6.2009, 16:24
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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