我有一个像这样的javascript事件处理程序:

for (i = 0; i < x; i++){
 var table = tableList[i];
 var tableID = table.getAttribute('id');

 var selector = table.querySelectorAll('input')[0];
 selector.on('focusout', function(){
    alert(tableID);
 }):
}


无论我使用哪个表,tableID警报始终是tableList中最后一个表的ID。

有任何想法吗?

最佳答案

您可以将tableID作为数据对象附加到事件处理程序。请尝试以下方法。

selector.on('focusout', { tableID: tableID }, function(e) {
    alert(e.data.tableID);
}):


根据jQuery文档。

//data
//Type: Anything
//Data to be passed to the handler in event.data when an event is triggered.

10-08 15:48