7

随着在 javascript 中添加事件的不同方式,它们中的任何一个都像 css 类一样优先吗?例如,内联 onclick 是否总是会在添加 addEventListener 之前触发?

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

4

2 回答 2

7

是的

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

于 2013-10-31T21:05:21.290 回答
3

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

您可以声称 onclick 属性事件总是首先触发是一般规则,并且总是如此,但这并不是因为它们具有优先级。

引用自@Kevin B 的评论

于 2013-10-31T21:05:03.783 回答