0

有没有办法让事件优先?所以在下面的例子中,它总是首先触发 div1 事件,但我想先触发 div2 事件。我可以将 div2 移到 div1 div 之外,但由于其他事情(如果这是最好的选择,我会这样做),它会包括更多的工作。

另外,这是现代方法吗?我知道人们谈论使用 .on 而不是 .live,但我不认为 .click 有问题,不是吗?

<div id="div1">
    Various content etc.
    <div id="div2">XXclickable content hereXX</div>
</div>

$('#div1').click(function(e) {
    alert("clicked 1");
});
$('#div2').click(function(e) {
    alert("clicked 2");
});
4

1 回答 1

0

我在 JSFiddle 上试过这个,在 jQuery 上的每个版本都可用,在 Firefox 和 Chrome 上div2,你的示例代码中的事件总是首先触发。根据我对传播/冒泡的理解,情况一直如此。

jsfiddle

无论如何,事件委托可能是一个更好的主意。也就是说,div2首先不是直接附加事件处理程序,而是向处理程序添加额外的逻辑div1并检查event.target调用者的身份。

jsfiddle

于 2015-02-11T08:48:09.887 回答