Javascript &引用$(文件).";在event.stopPropagation和"$(a) .“关于”;不触发新元素
我正在尝试编写一个chrome扩展(用于casperjs测试)。扩展的一部分需要绑定到Javascript &引用$(文件).";在event.stopPropagation和"$(a) .“关于”;不触发新元素,javascript,jquery,dom,jquery-plugins,jquery-events,Javascript,Jquery,Dom,Jquery Plugins,Jquery Events,我正在尝试编写一个chrome扩展(用于casperjs测试)。扩展的一部分需要绑定到click事件,我正在这样做: $(document).on('click', 'a', null, handler) $('a').on('click', null, null, handler) 这适用于所有链接,包括任何新创建的元素。问题是,如果链接有自己的单击调用事件.stopPropagation()方法的处理程序,则.on不会触发该处理程序 解决方法是我绑定到a元素,如下所示: $(docume
click
事件,我正在这样做:
$(document).on('click', 'a', null, handler)
$('a').on('click', null, null, handler)
这适用于所有链接,包括任何新创建的元素。问题是,如果链接有自己的单击调用事件.stopPropagation()
方法的处理程序,则.on
不会触发该处理程序
解决方法是我绑定到a
元素,如下所示:
$(document).on('click', 'a', null, handler)
$('a').on('click', null, null, handler)
即使另一个事件处理程序调用event.stopPropagation()
方法,它也可以正常工作并触发处理程序。问题是它不适用于动态创建的元素。因此,创建的任何新元素都不会触发处理程序
因此,我需要一些具有$(document).on
方法功能的东西,该方法触发动态创建的元素,但也会触发事件.stopPropagation()
方法
有什么想法吗
有什么想法吗
事件处理分为两个阶段:
默认情况下,事件处理程序绑定到侦听冒泡阶段(事件处理程序也绑定到jQuery)
要在调用元素自己的事件处理程序之前对事件作出反应,必须将处理程序绑定到捕获阶段。请注意,尤其是较旧的IE浏览器不支持此功能
由于jQuery不允许您这样做,您必须使用:
单击我并查看控制台
是的,这似乎适用于两种情况!非常感谢您的回答和解释。