JavaScript事件优先级

e3bfsja2  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(192)

在JavaScript中添加事件的方式不同,它们中的任何一个都像CSS类一样具有优先级吗?例如,内联onclick事件总是在添加addEventListener之前触发吗?
如果没有,有没有办法给予一个事件优先级?

n6lpvg4x

n6lpvg4x1#

是的

内联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属性,那么它将首先被附加。

ldioqlga

ldioqlga2#

JavaScript事件没有任何优先级。当事件被触发时,它会被添加到事件队列并尽快执行。
你可以声称onclick属性事件总是首先触发是一个一般规则,这将永远是真的,但这并不是因为它们有优先级。
引用自@Kevin B的评论

相关问题