Javascript事件优先级

时间:2013-10-31 21:03:42

标签: javascript javascript-events

通过在javascript中添加事件的不同方式,他们中的任何一个都像css类一样优先吗?例如,在添加addEventListener?

之前,内联onclick甚至会一直触发

如果没有,有没有办法给予事件优先权?

2 个答案:

答案 0 :(得分:4)

内联onclick处理程序将绑定为正在加载DOM

您使用.on.addEventListener添加的任何内容都必须等待DOM元素首先加载。

见这里:http://jsfiddle.net/DmxNU/

你的HTML

<a href="#" onclick="console.log('hello');">click</a>

你的js(在这种情况下为jQuery)

$(function() {
    $("a").click(console.log.bind(console, "world"));
});

输出

hello
world

<强>解释

我不确定这会记录在哪里,但请这样考虑一下。如果您要使用DOM API查询元素然后添加事件侦听器,则必须首先加载该元素。如果该元素已包含onclick属性,则该属性将首先附加。

答案 1 :(得分:2)

JavaScript事件不会占用任何优先级。当和事件被触发时,它会被添加到事件队列中并尽快执行。

  

你可以声称onclick attribut事件总是首先触发是一般规则,而且总是如此,但并不是因为它们被优先考虑。

引自@Kevin B的评论