ホームページ  >  記事  >  ウェブフロントエンド  >  addEventListenerとonの違いを詳しく解説

addEventListenerとonの違いを詳しく解説

黄舟
黄舟オリジナル
2017-12-04 15:25:032426ブラウズ

前回の記事で、JavaScriptでのaddEventListenerの使い方を紹介しましたが、皆さんはaddEventListenerについてよく理解できたと思いますので、今日は引き続きaddEventListenerとonの違いを紹介していきます。

なぜ addEventListener が必要なのでしょうか?

最初にスニペットを見てみましょう:

html コード

<div id="box">追梦子</div>

on コードを使用します

window.onload = function(){
    var box = document.getElementById("box");
    box.onclick = function(){
        console.log("我是box1");
    }
    box.onclick = function(){
        box.style.fontSize = "18px";
        console.log("我是box2");
    }
}
     运行结果:“我是box2”

ほら、2 番目の onclick が最初の onclick をカバーしていますが、ほとんどの場合、on を使用して目的の結果を完成させることができます。しかし、場合によっては、複数の同一の イベント を実行する必要があることは明らかです。on で目的を達成できない場合は、推測する必要はありません。それはわかっているはずです。 addEventListener は同じイベントを複数回バインドでき、前のイベントを上書きしません。

addEventListener

window.onload = function(){
    var box = document.getElementById("box");
    box.addEventListener("click",function(){
        console.log("我是box1");
    })
    box.addEventListener("click",function(){
        console.log("我是box2");
    })
}
    运行结果:我是box1
         我是box2

のコードを使用します。addEventListenertメソッドの最初のパラメータはイベント名を入力する必要はありません。2番目のパラメータは関数であるかどうかを参照します。イベントはバブリング フェーズまたはキャプチャ フェーズで処理されます。処理 プログラムでは、true の場合はキャプチャ フェーズの処理を表し、false の場合はバブリング フェーズの処理を表します。3 番目のパラメータは省略でき、ほとんどの場合、その必要はありません。 3 番目のパラメータを使用します。3 番目のパラメータが記述されていない場合、デフォルトは false です

3 番目のパラメータの使用方法

場合によっては、次のような状況になります

<body>
  <div id="box">
    <div id="child"></div>
  </div>
</body>

ボックスにクリックイベントを追加すると、ボックスを直接入力しても問題ありませんが、子要素をクリックすると、「How is itexecuted?」と表示されます。 (実行順序)

box.addEventListener("click",function(){
    console.log("box");
})

child.addEventListener("click",function(){
    console.log("child");
})
  执行的结果:
        child
        box

つまり、デフォルトではイベントがバブルアップした順に実行されます。

3番目のパラメータをtrueにすると、イベントキャプチャの実行順序に従います。

box.addEventListener("click",function(){
    console.log("box");
},true)

child.addEventListener("click",function(){
    console.log("child");
})
  执行的结果:
        box
        child

イベントバブリングの実行プロセス:

最も具体的な要素(クリックした要素)から開始し、上向きにバブリングを開始します。上記の順序では、子->ボックス

イベントキャプチャの実行プロセス:

具体性の低い要素(一番外側のボックス)から始めて、内側に向かってバブルしていきます。上記の場合、順序は次のとおりです: box->child

要約:

addEventListener と on の違いを詳しく説明します。サンプル メソッドを通じて、友人が addEventListener の使用方法などをよりよく理解できるようになり、あなたの作業に役立つことを願っています。

関連する推奨事項:

JavaScript での addEventListener の使用方法の詳細な説明

JavaScript DOM オブジェクトの学習イベント ストリーム addEventListener() の使用方法のチュートリアル

分析 addEventListener() とjsでremoveEventListener()

以上がaddEventListenerとonの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。