JavaScriptのonclickとclickの違いの詳細な説明

JavaScriptのonclickとclickの違いの詳細な説明

これがddEventListeneronの違いです

addEventListener が必要な理由は何ですか?

まずはクリップを見てみましょう:

<div id="box">テスト</div>

コードの使用:

windwo.onload = 関数(){
  var box = document.getElementById("box");
  box.onclick = ()=>console.log("私はbox1です");
  box.onclick = ()=>console.log("私はbox2です");
}
// 実行結果: 私はbox2です

2 番目の onclick イベントが最初の onclick をカバーしているのがわかります。ほとんどの場合、on を使用して目的の効果を得ることができますが、場合によっては複数の同一イベントを実行する必要があり、これは明らかに on を使用して実現することは不可能です。ただし、addEventListener を使用すると、以前のイベントを上書きせずに同じイベントを複数回バインドできます。

addEventListener を使用したコード

window.onload = 関数(){
  var box = document.getElementById("box");
  box.addEventListener("click",()=>console.log("私はbox1です"));
  box.addEventListener("click",()=>console.log("私はbox2です"));
}
// 操作結果: 私はbox1です
            //私はボックス2です

addEventListenerメソッドの最初のパラメータにはイベント名が入ります。記述する必要がないことに注意してください。2 番目のパラメータは関数にすることができます。3 番目のパラメータは、イベントをバブリング ステージで処理するか、キャプチャ ステージで処理するかを示します。true の場合はキャプチャ ステージで処理することを意味します。false の場合はバブリング ステージで処理することを意味します。3 番目のパラメータは省略できます。ほとんどの場合、3 番目のパラメータは必要ありません。3 番目のパラメータを記述しない場合は、デフォルトで false になります。

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

時々、状況は次のようになります:

<本文>
  <div id = "ボックス">
    <div id = "子"></div>
  </div>
</本文>

ボックスに cclick イベントを追加すると、ボックスを直接クリックしても問題ありませんが、子要素をクリックした場合はどのように実行されますか?

box.addEventListener("click",()=>console.log("box"));
child.addEventListener("click",()=>console.log("child"));
// 実行結果: 子 -> ボックス

つまり、デフォルトではイベント バブリングの実行順序に従います。

ここに画像の説明を挿入

3 番目のパラメータが true の場合、イベントがキャプチャされた順序で実行されます。

要約する

1. onclickイベントは一度に1つのオブジェクトのみを指すことができます

2. addEventListener 1つのイベントに複数のリスナーを登録できる

3. addEventListener任意のDOM要素に有効ですが、onclickはHTML要素に限定されます。

4. addEventListenerリスナーのトリガーフェーズ(キャプチャ/バブル)を制御できます。

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript onclickイベントの使い方の詳しい説明
  • JavaScript における click と onclick の本質的な違いと使用法の分析
  • JSは、同じDOM要素上のonClickイベントとonDblClickイベントの共存に対するソリューションを実装します。
  • JavaScript でクリック イベント (onclick) をボタンにバインドする方法
  • JavaScript は onclick イベントを使用して、選択した行の色を変更します。

<<:  MySQL最適化ツール(推奨)

>>:  マークアップ言語 -

推薦する

CSS テキスト配置実装コード

フォームを作成するときに、名前、携帯電話番号、出生地などの 2 つのフィールドを揃える状況に遭遇する...

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...

MySQL構成SSL証明書ログインの実装

目次序文1. MySQLはSSL構成を有効にする1.1 SSLが有効になっているかどうかを確認する1...

Vue3のレスポンシブ原則の詳細な説明

目次Vue2 レスポンシブ原則のレビューVue3 レスポンシブ原則の分析ネストされたオブジェクトの応...

Celery と Docker を使用して Django で定期的なタスクを処理する方法

Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...

React スキャフォールディングのパスエイリアスを設定する方法

この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...

左右の幅を固定し、中央の幅を適応させたHTMLレイアウトのソリューションの詳細な説明

この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...

VMware 15 を使用して仮想マシンをインストールし、CentOS 8 を使用する詳細な手順

序文:現在、Linux と .Net Core を学習しており、クロスプラットフォームの知識を学んで...

Mysql関数呼び出しの最適化の詳細な説明

目次関数呼び出しの最適化関数呼び出しの最適化MySQL 関数は、内部的に決定論的または非決定論的とし...

VMwareでCentOSがインターネットにアクセスできない問題を素早く解決

昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...

MySQLのMVCCマルチバージョン同時実行制御の実装

1 MVCCとは何かMVCC の正式名称は、マルチバージョン同時実行制御です。データベースへの同時ア...

jQueryはネストされたタブ機能を実装します

この記事では、ネストされたタブ機能を実装するためのjQueryの具体的なコードを参考までに紹介します...

インスタンス化されたオブジェクトパラメータによるMySQLクエリ例の説明

この記事では、オブジェクト パラメータをインスタンス化して MySQL でデータをクエリする方法を紹...

MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説

矢が放たれる前に、弓は矢にささやきました。「お前の自由は私のものだ。」スキーマは矢のようなもので、弓...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...