-1

我有一个 TABLE ,每个 TABLEROW 都有一个带有 onclick 的 div deleteRow(rowIndex),其中 rowIndex 是应该被点击的行的索引。问题是,每当我尝试像这样主动更改其中一个行的 onclick 时,它都会吓坏并在我更改后立即自动调用它:

row.onclick = deleteRow(rowIndex);

我也在使用 Prototype.js。

这是我的处理程序:

deleteRow = function(rowIndex) {
    var table = $('tableElmt');
    table.each(function(row, index) {
        if(index == rowIndex)
            row.onclick = deleteRow(index);
    })
}

当我像这样更改 onclick 时,它会立即再次调用 deleteRow 并进入循环,我不知道为什么。

我认为这与我调用deleteRow()inside的方式有关deleteRow(),尽管也可能是我错误地更改了“onclick”。

我也试过这个来处理对表格行的点击:

row.observe('click', deleteRows(rowIndex));

但它做同样的事情。此外,这与 html 中所有行已经存在的 onclick() 事件处理程序冲突,我不确定如何处理。

如何更改 onclick() 事件处理程序中的 onclick() 事件处理程序?

4

1 回答 1

4

您正在调用 deleteRow 函数,并将其结果分配给 onclick 处理程序。你想要达到的是:

row.onclick = (function(index){
 return function(){
   deleteRow(index);
 }
})(index);
于 2013-05-29T14:20:08.030 回答