我有一个要求,就像我将从我的网络服务中动态获取一组具有随机ID的div。一旦将它添加到我的html中,我想将一些事件绑定到id。现在我的问题是,如果我使用for循环覆盖ID的数组,当循环的范围完成时,事件范围被破坏。
例如:
var arrID={'1','2','3'};
for(var d in arr)
{
arrID.live("click",function() {});
}
//scope of for loop finishes here, hence the scope of click also.
如何克服这个问题?感谢。
答案 0 :(得分:3)
您无法将click事件绑定到JavaScript对象。它必须绑定到JQuery DOM对象。试试这个:
var arrID=['1','2','3'];
$.each(arrID, function(index, value) {
$('#' + value).live('click',function(){
// Do something
});
});
这是一个有效的演示。请注意,前3个创建的div只有绑定事件:http://jsfiddle.net/FxwpC/
答案 1 :(得分:1)
你可能想要这样的东西:
$("#my-id-name-" +d).live("click", function() {
$(this).doSomeThing();
});
答案 2 :(得分:0)
var arrID=['1','2','3'];
for(var d in arrID)
{
$("#"+d).live("click",function() {});
}