jQuery不适用于使用`.loaded()`加载的内容

时间:2014-03-04 14:41:13

标签: jquery

我正在处理订阅/取消订阅按钮,我在“加载”内容之后遇到的问题,jquery将不会对加载的内容起作用。

例如,如果我点击.subscribe,则加载的内容将是 <div data-item="123" class="unsubscribe">unsubscribe</div> 如果我点击.unsubscribe它将不会触发$(".unsubscribe") jquery function

$(".subscribe").click(function(){
    $(this).parent().load("/index.php?do=sub&a=add&id=" + $(this).data("item"));
})

$(".unsubscribe").click(function(){
    $(this).parent().load("/index.php?do=sub&a=del&id=" + $(this).data("item"));
})

2 个答案:

答案 0 :(得分:4)

您需要使用事件委派:

$(".subscribe").on('click', '.unsubscribe', function(){
    $(this).parent().load("/index.php?do=sub&a=del&id=" + $(this).data("item"));
})

动态加载元素时,您需要使用.on()的{​​{3}}。

答案 1 :(得分:1)

那是因为你在元素在DOM之前绑定事件,所以新元素不会附加该事件。

您可以将其附加到正文并将其委托给.unsubscribe

$('body').on('click', '.unsubscribe', function(){ 
    //your function 
});