ホームページ ウェブフロントエンド jsチュートリアル JavaScript登録イベント処理関数の説明例_JavaScriptスキル

JavaScript登録イベント処理関数の説明例_JavaScriptスキル

May 16, 2016 pm 03:20 PM
javascript イベント処理 登録する

イベントは JavaScript の中核となるコンテンツであり、その重要性についてはここでは紹介しません。イベントがトリガーされた後、それを処理するイベント処理関数が必要になります。たとえば、ボタンがクリックされたときに div の背景が緑色に設定されるように定義できます。次に、それを実現する方法を見てみましょう。この効果のコード例は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<html>

<head>

<meta charset=" utf-8">

<title>javascript如何注册事件处理函数</title>

<style type="text/css">

#mydiv{

 width:100px;

 height:100px;

 background-color:red;

}

</style>

<script type="text/javascript">

function changebg(){

 var mydiv=document.getElementById("mydiv");

 mydiv.style.backgroundColor="green";

}

</script>

</head>

<body>

 <div id="mydiv"></div>

 <button id="bt">点击查看效果</button>

</body>

</html>

ログイン後にコピー

上記のコードでは、ボタンをクリックすると div の背景色が緑色に設定されます。これは、コードがボタンの onclick イベントのイベント ハンドラー関数を登録しているためです。この関数は div の背景色を設定できます。緑に。オブジェクト イベントのイベント処理関数を登録する方法を例を示して簡単に紹介します:
方法 1:
イベント ハンドラー関数を HTML コードに直接登録する、つまり HTML 属性によってイベント ハンドラー関数を直接設定するこのメソッドは、HTML の属性値として使用されます。記事の。メリットとデメリットは次のとおりです。

  • 1. 理解しやすく、使いやすい。
  • 2. すべての主要なブラウザがこのメソッドをサポートしています。
  • 3. HTML コードが混在しているため、ページが非常に複雑になり、パフォーマンスとコンテンツの分離の原則に矛盾します。
  • 4. 同じオブジェクトには、同じ種類のイベント ハンドラーを 1 つだけ登録できます。

方法 2:
イベントハンドルモード、いわゆるイベントハンドルはイベント処理機能であり、指定されたオブジェクトの指定されたイベントがイベントハンドラに相当します。この方法でイベント処理関数を登録するには、まずオブジェクトへの参照を取得し、次にイベント ハンドルをオブジェクトの対応するイベント処理関数属性に割り当てる必要があります。実際、メソッド 1 も一種のイベント ハンドラー メソッドです。
コード例は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<html>

<head>

<meta charset=" utf-8">

<title>javascript如何注册事件处理函数</title>

<style type="text/css">

#mydiv{

 width:100px;

 height:100px;

 background-color:red;

}

</style>

<script type="text/javascript">

window.onload=function(){

 var mydiv=document.getElementById("mydiv");

 var bt=document.getElementById("bt");

 bt.onclick=function(){

  mydiv.style.backgroundColor="green";

 }

}

</script>

</head>

<body>

 <div id="mydiv"></div>

 <button id="bt">点击查看效果</button>

</body>

</html>

ログイン後にコピー

上記のコードでは、まず document.getElementById("bt") を使用してボタン オブジェクトの参照を取得し、次にイベント ハンドル (イベント ハンドラー関数) をボタン オブジェクトの onclick イベント属性に割り当てます。 onclick イベントはボタンがクリックされるとトリガーされ、イベント ハンドラーでコードが実行されます。メリットとデメリットは次のとおりです。

  • 1. シンプルでわかりやすい。
  • 2 つのブラウザでサポートされています。
  • 3. 同じオブジェクトには、同じ種類のイベント ハンドラーを 1 つだけ登録できます。

方法 3:
これは、より高度なイベント登録メソッド、つまりイベント リスナーです。このメソッドは、指定されたオブジェクトに指定された種類のイベントのハンドラー関数が 1 つしか登録できないという問題を解決します。ただし、以下に示す特定の互換性の問題があります:
1).IE ブラウザ:
IE ブラウザでは、attachEvent() メソッドと detachEvent() メソッドを使用して、指定したオブジェクトのイベント処理関数を登録したり、登録されたイベント処理関数を削除したりできます。
構文形式は次のとおりです:
element.attachEvent("onevent",eventListener)
この関数には 2 つのパラメータがあり、最初のパラメータはイベント タイプの名前、2 番目のパラメータは登録するイベント ハンドラ関数です。
コード例は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<html>

<head>

<meta charset=" utf-8">

<title>javascript如何注册事件处理函数</title>

<style type="text/css">

#mydiv{

 width:100px;

 height:100px;

 background-color:red;

}

</style>

<script type="text/javascript">

window.onload=function(){

 var mydiv=document.getElementById("mydiv");

 var bt=document.getElementById("bt");

  

 bt.attachEvent("onclick",changebg);

  

 function changebg(){

  mydiv.style.backgroundColor="green";

 }

}

</script>

</head>

<body>

 <div id="mydiv"></div>

 <button id="bt">点击查看效果</button>

</body>

</html>

ログイン後にコピー

上記のコードは、attachEvent() 関数を使用してボタンの onclick イベント ハンドラーを登録しますが、これは IE ブラウザーでのみ有効です。 detachEvent() 関数を使用して、最初に登録されたイベント処理関数を切り離します。構文形式は次のとおりです。
element.detachEvent("onevent",eventListener) 形式はattachEvent()関数と同じです。
特記事項: 最初のパラメータには on を含める必要があります。たとえば、クリック イベントは「onclick」と記述する必要があります。

2) 標準ブラウザ: 標準ブラウザ(IE9およびIE9以降のブラウザを含む)では、addEventListener()関数およびremoveEventListener()関数を使用して登録処理関数の登録および削除を行います。
構文形式は次のとおりです:
element.addEventListener('event',eventListener,useCapture);
この関数には 3 つのパラメータがあります。最初のパラメータは、登録されるイベント ハンドラ関数です。3 番目のパラメータは、このハンドラ関数がイベント配信プロセスのキャプチャ フェーズ中に呼び出されるか、バブルアップされるかを指定します。ステージが呼び出されます。デフォルトの条件では、このプロパティの値は false です。これは、イベント ハンドラーがバブリング ステージ中に呼び出されることを意味します。
特記事項: 最初のパラメータに on を含めることはできません。たとえば、クリック イベントを「onclick」と記述することはできませんが、「click」と記述する必要があります。
コード例は次のとおりです:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<html>

<head>

<meta charset=" utf-8">

<title>javascript如何注册事件处理函数</title>

<style type="text/css">

#mydiv{

 width:100px;

 height:100px;

 background-color:red;

}

</style>

<script type="text/javascript">

window.onload=function(){

 var mydiv=document.getElementById("mydiv");

 var bt=document.getElementById("bt");

  

 bt.addEventListener("click",changebg);

  

 function changebg(){

  mydiv.style.backgroundColor="green";

 }

}

</script>

</head>

<body>

 <div id="mydiv"></div>

 <button id="bt">点击查看效果</button>

</body>

</html>

ログイン後にコピー

以上代码在IE9和IE9以上或者其他标准浏览器中,点击按钮可以将div的背景颜色设置为绿色。使用removeEventListener()函数可以解除原来注册的事件处理函数,语法格式如下:
element.removeEventListener('event', eventListener, useCapture);
格式和addEventListener()函数式一样的。
跨浏览器注册事件处理函数:
只要加个判断语句即可,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

var EventUtil={

  //注册

  addHandler: function(element, type, handler){

   if (element.addEventListener){

    element.addEventListener(type, handler, false);

   } else if (element.attachEvent){

    element.attachEvent("on" + type, handler);

   } else {

    element["on" + type] = handler;

   }

  },

  //移除注册

  removeHandler: function(element, type, handler){

   if (element.removeEventListener){

    element.removeEventListener(type, handler, false);

   } else if (element.detachEvent){

    element.detachEvent("on" + type, handler);

   } else {

    element["on" + type] = null;

   }

  }      

 };

ログイン後にコピー

以上就是本文的详细内容,希望对大家的学习有所帮助。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

小紅書に複数のアカウントを登録するにはどうすればよいですか?複数のアカウントを登録するとバレてしまうのでしょうか? 小紅書に複数のアカウントを登録するにはどうすればよいですか?複数のアカウントを登録するとバレてしまうのでしょうか? Mar 25, 2024 am 09:41 AM

小紅書に複数のアカウントを登録するにはどうすればよいですか?複数のアカウントを登録するとバレてしまうのでしょうか?

漫画マンガアカウントの登録方法 漫画マンガアカウントの登録方法 Feb 28, 2024 am 08:00 AM

漫画マンガアカウントの登録方法

小紅書アカウントを登録するにはどうすればよいですか?小紅書アカウントを登録するには何が必要ですか? 小紅書アカウントを登録するにはどうすればよいですか?小紅書アカウントを登録するには何が必要ですか? Mar 22, 2024 am 10:16 AM

小紅書アカウントを登録するにはどうすればよいですか?小紅書アカウントを登録するには何が必要ですか?

携帯電話番号に何が登録されているか確認する方法「詳しく解説:携帯電話番号登録のAPP問い合わせ方法」 携帯電話番号に何が登録されているか確認する方法「詳しく解説:携帯電話番号登録のAPP問い合わせ方法」 Feb 07, 2024 am 08:24 AM

携帯電話番号に何が登録されているか確認する方法「詳しく解説:携帯電話番号登録のAPP問い合わせ方法」

小紅書アカウントを登録するにはどうすればよいですか?アカウントが異常な場合はどうやって回復しますか? 小紅書アカウントを登録するにはどうすればよいですか?アカウントが異常な場合はどうやって回復しますか? Mar 21, 2024 pm 04:57 PM

小紅書アカウントを登録するにはどうすればよいですか?アカウントが異常な場合はどうやって回復しますか?

163メールの登録方法 163メールの登録方法 Feb 14, 2024 am 09:20 AM

163メールの登録方法

qooappアカウントの登録方法 qooappアカウントの登録方法 Mar 19, 2024 pm 08:58 PM

qooappアカウントの登録方法

1つの携帯電話番号に2つのBサイト番号を登録するにはどうすればよいですか?ステーション B はどのようにして携帯電話のバインドを解除するのでしょうか? 1つの携帯電話番号に2つのBサイト番号を登録するにはどうすればよいですか?ステーション B はどのようにして携帯電話のバインドを解除するのでしょうか? Mar 21, 2024 pm 10:10 PM

1つの携帯電話番号に2つのBサイト番号を登録するにはどうすればよいですか?ステーション B はどのようにして携帯電話のバインドを解除するのでしょうか?

See all articles