JQuery事件并不总是触发

时间:2013-09-11 19:28:17

标签: javascript jquery ajax

我正在开发一个完整的AJAX应用程序。当我加载一个新的AJAX元素时,我使用回调来设置它的处理程序。为了确保不尝试绑定一个非现有元素,我将监听器放在某个父级上。例如,我这样做:

$el.on( 'click',"#popin a.closePopin", function(e) { 
        e.preventDefault();
        closePopin(); 
});

这有效... 80%的时间。

我的问题是,当没有被解雇时,其他20%呢?

感谢。

编辑:在阅读完第一个答案和评论之后,我想确切地说,问题是在相同的元素上随机发生而不更新代码。 $ el是一个永不改变或消失的固定容器,而且ajax内容也是它的必然后代。

1 个答案:

答案 0 :(得分:1)

为避免这种情况,您不应将委派的事件附加到$el,这样只有与选择器匹配的后代元素才能触发事件,而是将其附加到document

$(document).on('click', "#popin a.closePopin", function(e) { 
    e.preventDefault();
    closePopin(); 
});