同じオブジェクトとイベントへの複数の応答を結合が実行されます

1. onclickのため=「」イベントに応じて追加された要素は、最後のイベントに応答して実行することができ、イベントが後で離れ積み重ね追加されるためにイベントを追加

だから、複数のハンドラをバインドするためにイベントリスナーaddElementLitener()を使用し、かつので、互換性の問題は、互換性のあるコードである必要があります。

IE8、addElementLitener(2.)この関数は互換性がない、attachEvent()を使用。しかし、これには、Googleは、Firefoxと互換性がありませんので、あなたは、互換性のあるコードを記述する必要があります

3.addElementLitener()は、行われているIEの他のバージョンとの互換性のために指定された彼の独自の基準に反しているので、IEが必要、上の追加しない元の名前の一つの前の事象に応じて三つのパラメータ、およびattachEvent()のみ2つのパラメータを、持っています譲歩

4.ブラウザがアプローチをサポートしていないとき、彼は未定義の文字列を返します

 


<!DOCTYPE HTML>
<HTML LANG = "EN">
<HEAD>
  <METAのcharset = "UTF-8">
  <タイトル>バインド複数のイベント</ TITLE>
</ HEAD>
<BODY>
  <=タイプのINPUT」ボタン"値=" Iポイントを費やすことはありません"ID =" BTN ">


<スクリプトタイプ="テキスト/ JavaScriptを「>
  関数myget(ID){
    のdocument.getElementById(ID)を返す;
  }

  機能のaddEventListener(素子タイプ、のFn ){
    区別を定義したものと同じ名前を持つ、以下の方法から//この関数
    (typeof演算element.addEventListener!=「未定義」IF){
      //は注意することが重要であるIE無限ループに取り外した場合、文字列型は、未定義である
      要素.addEventListener(タイプ、falseにのFn、);
    }それ以外(typeof演算element.attachEvent =「IF!未定義"){
      element.attachEvent(")+タイプ、FN」に、
      //などの名前も直接、彼が何を意味するのかを直接表現していますが、「上」の前にマイクロソフトを与える必要が書かれるべきでクリックなどのイベントに応答する
    他{}
      ;要素[タイプの+「には」]のFnを=
      ブラウザの上部の2つの場合は//二つのみ書き込むことができ、互換性がない
    }
  }


  のaddEventListener(myget( "BTN")、 "クリック"機能を(){
    にconsole.log( "チェン帥");
  });
  のaddEventListener(myget( "BTN") 、 "クリック"、関数(){
    にconsole.log( "真");
  });
  のaddEventListener(myget( "BTN")、 "クリック"、関数(){
    にconsole.log(「本当にハンサムああ「);
  });
</ SCRIPT>

</ BODY>
</ HTML>

おすすめ

転載: www.cnblogs.com/sherryweb/p/10984005.html