JavaScriptでイベントを追加するさまざまな方法で、cssクラスのように優先されるものはありますか? たとえば、インラインの onclick は、addEventListener で追加されたものよりも前に常に起動しますか?
そうでない場合、イベントを優先する方法はありますか?
JavaScriptでイベントを追加するさまざまな方法で、cssクラスのように優先されるものはありますか? たとえば、インラインの onclick は、addEventListener で追加されたものよりも前に常に起動しますか?
そうでない場合、イベントを優先する方法はありますか?
はい
インライン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
属性が含まれている場合は、それが最初にアタッチされます。
JavaScript イベントには優先順位がありません。イベントが発生すると、イベント キューに追加され、できるだけ早く実行されます。
onclick 属性イベントが常に最初にトリガーされるのが一般的なルールであり、常にそうであると主張できますが、それは優先順位が高いからではありません。
@Kevin B のコメントから引用