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() イベント ハンドラーを変更するにはどうすればよいですか?