我有一个像这样的 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.
关于javascript - Javascript 事件处理程序使用其范围之外的变量时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074242/