Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用$(文件).";在event.stopPropagation和"$(a) .“关于”;不触发新元素_Javascript_Jquery_Dom_Jquery Plugins_Jquery Events - Fatal编程技术网

Javascript &引用$(文件).";在event.stopPropagation和"$(a) .“关于”;不触发新元素

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

我正在尝试编写一个chrome扩展(用于casperjs测试)。扩展的一部分需要绑定到
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不允许您这样做,您必须使用:


单击我并查看控制台
是的,这似乎适用于两种情况!非常感谢您的回答和解释。