【发布时间】:2016-02-08 05:06:22
【问题描述】:
我还是一个初学者,我尝试在动态 html 表中的<td> 中的类型(文本)输入上设置动态事件处理程序,代码如下:
for(var i=0; i<5; i++){
table += '<td><input type="text" name="vote['+i+']"></td>';
$("#table").on("keyup", "input[type='text'][name='vote["+i+"]']", function() {
console.log("called: "+i);
calculate(i);
});
}
它没有工作。 i 的值(如console.log 中显示的那样)不是应有的值,即依次为0 到4,但始终为5。但在其他地方,我使用了类似下面示例中的模式,并且它有效。
$.each(array_parties, function(i, objParty) {
var stationID = objStation.stationID;
var partyID = objParty.partyID;
table += '<td><input type="text" name="items['+stationID+']['+partyID+']"></td>';
$("#table").on("keyup", "input[type='text'][name='items["+stationID+"]["+partyID+"]']", function() {
calculateTotalByParty(json, partyID, khumID);
});
});
请,有人可以帮助找出这里的问题吗?快把我逼疯了。
【问题讨论】:
-
它正在形成一个闭包!
-
是的,但正如我在第二个示例中所示,它应该可以正常工作。
-
使用$.each不会出现问题
-
哦,我不知道。现在可以了。非常感谢。
标签: jquery loops dynamic event-handling