Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 绑定多个单击事件时的奇怪行为-绑定到选择器与事件委派_Javascript_Jquery_Click_Jquery Events - Fatal编程技术网

Javascript 绑定多个单击事件时的奇怪行为-绑定到选择器与事件委派

Javascript 绑定多个单击事件时的奇怪行为-绑定到选择器与事件委派,javascript,jquery,click,jquery-events,Javascript,Jquery,Click,Jquery Events,我正在测试一个场景,在这个场景中,我需要在选择器上有2个单击事件(例如2个链接) 我相信事件是按照元素的自上而下顺序绑定的,在元素中事件已经被初始化 一般情况 $('a')。在('click')上,函数(e){ e、 预防默认值(); log(“单击我!!!”; }); $('a')。在('click',函数(e)上{ e、 预防默认值(); log(“再次单击我单击!!!”; }); 您提供的代码段是预期的行为,第一个代码段-jquery将事件绑定,而不是替换事件。您可以使用类似“clic

我正在测试一个场景,在这个场景中,我需要在选择器上有2个单击事件(例如2个链接)

我相信事件是按照元素的自上而下顺序绑定的,在元素中事件已经被初始化

一般情况

$('a')。在('click')上,函数(e){
e、 预防默认值();
log(“单击我!!!”;
});
$('a')。在('click',函数(e)上{
e、 预防默认值();
log(“再次单击我单击!!!”;
});


您提供的代码段是预期的行为,第一个代码段-jquery将事件绑定,而不是替换事件。您可以使用类似“click.myNamespace”的名称空间手动删除事件。第二个片段-事件正在DOM树中冒泡。当您将e.stopPropagation放入第二个代码段第二个事件(不带委托)中时,不会触发主体上的事件,因为冒泡在标记本身处停止,这是预期的。如果您可以访问事件和控件的代码,您可以尝试使用eventTarget来解决特定的问题scenario@SimranjitSingh正确的。我可以使用
e.target
来检查元素并编写条件逻辑来执行一段代码。如果我的页面上有50个锚元素,并且每个锚元素都有一个在不同视图中关联的点击事件,该怎么办。这将是一个痛苦的去所有的地方,并取代逻辑使用事件委托和移动到一个事件与50个条件来处理场景。我不认为它应该以这种方式工作,如果你得到一个解决方案,而不是使用一个条件声明-请张贴在这里为社区。尝试从高于当前outlook的某些级别查看代码,您可能能够以另一种方式完成任务,并且可能不需要处理这种奇怪的场景。祝你好运