Javascript Jquery事件处理顺序:先单击ele:自身还是父级?

Javascript Jquery事件处理顺序:先单击ele:自身还是父级?,javascript,Javascript,我有以下单击事件处理程序: $('html').click(function() { do something}); $('#my_div').click(function() { do something}); my_div是html的后代 如果单击我的_div,我可以控制首先调用哪个吗?我能依靠总是首先处理my_div处理程序吗 子事件处理程序总是在父事件处理程序之前调用(事件冒泡)。因此,当您单击#my_div时,将调用其单击事件处理程序。在这里,您可以选择使用 event.stop

我有以下单击事件处理程序:

 $('html').click(function() { do something});
 $('#my_div').click(function() { do something});
my_div是html的后代


如果单击我的_div,我可以控制首先调用哪个吗?我能依靠总是首先处理my_div处理程序吗

子事件处理程序总是在父事件处理程序之前调用(事件冒泡)。因此,当您单击
#my_div
时,将调用其单击事件处理程序。在这里,您可以选择使用

event.stopPropagation()
i、 e

注意:使用jQuery时,
event.stopPropagation()
可能无法在所有浏览器中工作。您必须将
事件
作为单击处理程序中的参数


例如,
$('my#u div')。单击(函数(事件){…})

我想这项实际工作会让您更好地理解,但它总是这样吗?是的,如果您想阻止事件传播向更高阶移动,请调用此
event.stopPropagation()
。这样,对子元素的调用将只保留在子范围内。谢谢。我确实需要停止传播,但是我通过设置一个标志“clicked”并检查它来停止传播。event.stopPropagation()在Chrome中工作。IE需要另一个解决方案,但我从未在Firefox中使用过。该标志有效:)您正在使用IE浏览器吗?我最终处理了event.stopPropagation,方法是在子项中设置“单击”标志,在父项中检查该标志,然后将其设置为“未单击”。
$('#my_div').click(function(event) { 
   event.stopPropagation();
});