2011-12-14 96 views
2

我有要求,我会动态地从我的Web服务中获取一组具有随机ID的div。一旦它被添加到我的HTML我想要绑定一些事件的ID。现在我的问题是,如果我绑定事件使用for循环ID的数组,当循环的范围完成事件作用域被销毁。jQuery Live事件绑定

例如:

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. 

如何解决这个问题?谢谢。

回答

3

您无法将单击事件绑定到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

你可能想是这样的:

$("#my-id-name-" +d).live("click", function() { 
    $(this).doSomeThing(); 
}); 
+0

是和刚才添加的哈希选择的开始 – 2011-12-14 08:15:33

0
var arrID=['1','2','3']; 
for(var d in arrID) 
{ 
    $("#"+d).live("click",function() {}); 
}