1
JavaScript & JScript / Повесить событие на строку таблицы
« : 18 Января 2006, 18:09:12 »
Спасибо, уже использовал вариант с анонимными функциями, предложенный здесь. Там, кстати, есть довольно интересное обсуждение нюансов.
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Код: [Выделить]
function bindEventsToDataGrid(gridId, selectText) {
var table = document.all[gridId];
for (var i = 0; i < table.rows.length; i++) {
for (var j = 0; j < table.rows[i].cells.length; j++) {
var curTd = table.rows[i].cells[j];
if (curTd.innerText == selectText) {
curTd.innerText = "";
curTd.parentElement.attachEvent("onclick", selectRow);
}
}
}
}
function selectRow() {
alert("selected!" + event.srcElement.parentElement.rowIndex);
}
// Вешаем события перехода на строки грида
function bindEventsToDataGrid(gridId, selectText){
// грид
var table = document.getElementById(gridId);
// идем по строкам таблицы
for(var trIndex = 0; trIndex < table.childNodes[0].childNodes.length; trIndex++){
var curTr = table.childNodes[0].childNodes[trIndex];
// идем по ячейкам в строке
for (var tdIndex = 0; tdIndex < curTr.childNodes.length; tdIndex++){
var curTd = curTr.childNodes[tdIndex];
if (curTd.innerText == selectText){
// очищаем нафиг столбец выбора - его роль будет выполнять клик по строке
curTd.innerText = "";
// url перехода по клику
var transferUrl = "test:" + trIndex;
[B] curTr.onClick = "selectRow(\'" + transferUrl + "\')"; [/B]
}
}
}
}
function selectRow(transferUrl){
alert("selected!" + transferUrl);
}