-1

TABLE があり、各 TABLEROW には onclick を含む div がdeleteRow(rowIndex)あります。rowIndex は、クリックされたと思われる行のインデックスです。問題は、このように行の onclick の 1 つを積極的に変更しようとするたびに、変更するとすぐにびっくりして自動的に呼び出されることです。

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が再度呼び出されてループに入り、その理由がわかりません。

「onclick」を間違って変更している可能性もありますが、deleteRow()内部で呼び出す方法と関係があると思います。deleteRow()

テーブル行のクリックを処理するためにこれも試しました:

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

しかし、それは同じことをします。また、これは、html のすべての行に対して既に存在する onclick() イベント ハンドラーと競合し、それを処理する方法がわかりません。

その onclick() イベント ハンドラー内で onclick() イベント ハンドラーを変更するにはどうすればよいですか?

4

1 に答える 1