我正在开发一个完整的AJAX应用程序。当我加载一个新的AJAX元素时,我使用回调来设置它的处理程序。为了确保不尝试绑定一个非现有元素,我将监听器放在某个父级上。例如,我这样做:
$el.on( 'click',"#popin a.closePopin", function(e) {
e.preventDefault();
closePopin();
});
这有效... 80%的时间。
我的问题是,当没有被解雇时,其他20%呢?
感谢。
编辑:在阅读完第一个答案和评论之后,我想确切地说,问题是在相同的元素上随机发生而不更新代码。 $ el是一个永不改变或消失的固定容器,而且ajax内容也是它的必然后代。答案 0 :(得分:1)
为避免这种情况,您不应将委派的事件附加到$el
,这样只有与选择器匹配的后代元素才能触发事件,而是将其附加到document
。
$(document).on('click', "#popin a.closePopin", function(e) {
e.preventDefault();
closePopin();
});