Javascript事件优先级

Javascript事件优先级,javascript,javascript-events,Javascript,Javascript Events,通过在javascript中添加事件的不同方式,它们中是否有任何一个像css类一样具有优先级?例如,内联onclick是否总是在添加addEventListener之前触发 如果没有,是否有任何方法可以赋予事件优先级?JavaScript事件不具有任何优先级。当和事件被激发时,它将被添加到事件队列中并尽快执行 您可以声称,onclick Attribute事件总是首先触发是一条一般规则,这始终是正确的,但这并不是因为它们具有优先级 引用@Kevin B的评论是 内联onclick处理程序将在加载

通过在javascript中添加事件的不同方式,它们中是否有任何一个像css类一样具有优先级?例如,内联onclick是否总是在添加addEventListener之前触发


如果没有,是否有任何方法可以赋予事件优先级?

JavaScript事件不具有任何优先级。当和事件被激发时,它将被添加到事件队列中并尽快执行


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

引用@Kevin B的评论

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

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

请看这里:

你的html


您的js(本例中为jQuery)

$(函数(){
$(“a”)。单击(console.log.bind(console,“world”);
});
输出

hello
world
解释


我不确定这将记录在哪里,但请这样想。如果要使用domapi查询一个元素,然后添加一个事件侦听器,那么必须首先加载该元素。如果该元素已经包含一个
onclick
属性,那么它将首先被附加。

只是不要混搭,总是用JavaScript附加事件,问题就解决了。啊,感谢所有回复。我这样问是因为我正在CMS系统上安装插件。我不想修改根文件,因为它们太乱了。在某种情况下,我需要在图像交换后重新初始化插件。我希望函数交换图像,然后重新初始化插件。我应该指定问题,并询问它是否会先交换(内联事件),然后重新初始化(addEventListenerEvent)?@elclars我完全同意,不幸的是,在这种情况下,我只是对现有的东西进行管道录音。@MagicLasso我不完全理解你的问题。插件是否使用
AddEventListener()
将侦听器附加到正在交换的映像?@Sniffer Im使用AddEventListener将初始化事件添加到元素。我需要它在现有内联onclick事件触发后执行。虽然这主要是出于好奇,但实际上效果很好。这不是他要问的。他问你是否有
,然后是
$('a')。单击(函数(){alert('b');})
,哪个先发出警报?对,但仍然没有优先级。这是先进先出的。内联首先发生的原因是因为它是第一个被绑定的。@RocketHazmat我没有从这个角度看它,我是像KevinB那样思考它的。你可以说这是一个一般规则,onclick attribute事件总是先触发,这永远是真的,但这并不是因为它们被优先考虑。@KevinB如果你不介意的话,我在我的回答中引用了你的评论,因为我喜欢你的表达方式。你能参考一下这个(文档)吗?我从来没有考虑过这个概念,但总是假设它取决于它们在文档中声明的顺序。这是绑定代码的执行顺序,而不是文档中的顺序。例如,当浏览器解析html时,内联事件是绑定的,因此它们总是首先发生。虽然我不确定更改onclick属性以后会如何影响things@matewka,我添加了一个解释来回应您的评论。谢谢您的关注。但仍然没有证据。您提供的jQuery是在文档加载时进行评估的,因此很明显,“world”函数将在“hello”之后启动。当涉及到您的解释时,它只解释了事件侦听器不能绑定到不存在的元素。我会试着做些调查来证实你的想法。