繁体   English   中英

jQuery事件并不总是触发

[英]JQuery events not always firing

我正在开发完整的AJAX应用。 加载新的AJAX元素时,我使用回调在其上设置处理程序。 为了确保不试图绑定一个不存在的元素,我将侦听器放在某个父对象上。 例如我这样做:

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

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

我的问题是,什么都不做,剩下的20%呢?

谢谢。

编辑:阅读了第一个答案和评论后,我想弄清楚问题是在相同元素上随机发生的,而没有更新代码。 $ el是一个固定的容器,永远不会改变或消失,而ajax内容必然是它的后代。

为了避免这种情况,您不应该将委托事件附加到$el从而仅使与选择器匹配的后代元素触发该事件,而应将其附加到document

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM