jquery回调特异性

时间:2011-05-03 00:26:36

标签: javascript jquery


  是否有与jQuery事件回调相关的特殊性。比如说,我在div元素上注册了mousedown事件回调,也在文档上注册了。如果我点击div会触发哪一个?注册顺序是否重要?或特殊性(如css)很重要?

感谢。

3 个答案:

答案 0 :(得分:5)

它将冒出DOM树并调用该类型的所有其他事件。

您可以使用event.stopPropagation()停止此操作。

你的例子

如果你分配了这样的事件......

$(document).mousedown(function() { alert('document'); });

$('div').mousedown(function() { alert('div'); });

在任何地方向下鼠标都会触发document的处理程序,并使用文档获得一个警告对话框。

鼠标按下任何div将触发div的处理程序,然后将DOM一直冒泡到document,它将触发其事件处理程序。您将获得两个警报对话框;首先是 div 一个,然后是文档一个。

答案 1 :(得分:2)

将触发两个事件,首先是div,然后是文档点击。

答案 2 :(得分:1)

它将从内到外执行两者。单击div将触发div事件然后触发文档。的 Example on jsFiddle

$(window.document).click(function(e){
    alert("doc");
});

$("div").click(function(e){
    alert("div");
});

您可以避免使用e.stopImmediatePropagation()触发其他事件。的 See this example

$(window.document).click(function(e){
    alert("doc");
});

$("div").click(function(e){
    alert("div");
    e.stopImmediatePropagation(); // prevents $(doc) from rising
});