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 に答える