2014-03-04 38 views
1

加载的内容我正在处理订阅/取消订阅按钮,我遇到的问题是在它“加载”内容后,jquery将无法在加载内容。jQuery不适用于加载`.loaded()`

例如,如果我点击.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")); 
}) 

回答

1

这是因为您在元素位于DOM之前绑定事件,因此新元素不会附加该事件。

你可以将它连接到车身,并委托给.unsubscribe

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

您需要使用事件代表团:

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

当加载动态的元素,你需要使用.on()delegated event syntax