jQuery:优先考虑事件

时间:2013-03-03 05:01:25

标签: javascript jquery

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

另外,这是一种现代方法吗?我知道人们谈论使用.on over .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");
});

1 个答案:

答案 0 :(得分:0)

我在JSFiddle上尝试了这个,在Firefox和Chrome上都有jQuery上的每个版本,并且示例代码中的div2事件总是先被激活。根据我对均匀传播/冒泡的理解,情况一直如此。

jsfiddle

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

jsfiddle