jQuery Live事件绑定

时间:2011-12-14 08:08:58

标签: jquery

我有一个要求,就像我将从我的网络服务中动态获取一组具有随机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.

如何克服这个问题?感谢。

3 个答案:

答案 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() {});
}