Javascript事件优先级

Mag*_*sso 5 javascript javascript-events

通过在javascript中添加事件的不同方式,它们中的任何一个都像css类一样优先吗?例如,在添加addEventListener之前,内联onclick甚至会一直触发吗?

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

Ibr*_*jar 5

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

您可以声称 onclick 属性事件将始终首先触发是一条一般规则,这始终是正确的,但这并不是因为它们具有优先级。

引自 @Kevin B 的评论


mač*_*ček 5

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

而您添加的所有内容.on.addEventListener必须等待DOM元素首先加载的内容。

看到这里:http : //jsfiddle.net/DmxNU/

您的html

<a href="#" onclick="console.log('hello');">click</a>
Run Code Online (Sandbox Code Playgroud)

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

$(function() {
    $("a").click(console.log.bind(console, "world"));
});
Run Code Online (Sandbox Code Playgroud)

输出量

hello
world
Run Code Online (Sandbox Code Playgroud)

说明

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