onclickとaddEventListenerの違い
1615 ワード
普段は自分でJSを書く時に、
最初にコードを書く時はと同じ点:すべてイベントハンドラで、バインディング応答イベントの関数をサポートします. 異なる点: の出現の時間は異なっています. を使用している. である.
は捕獲状況をサポートする. です.
は、複数の処理関数を紐付けることができるかどうか だけをサポートしています. をバインディングすることをサポートする.
処理関数を除去する方法が違います. 最後に、
onclick
またはaddEventListener
という二つの方法で一つのイベントをバインドすることがあります.最初にコードを書く時は
onclick
が一番多いです.その後、ゆっくり勉強しているうちにaddEventListener
ということを認識しました.彼らはイベントを結びつけるために使うものだと知っていますが、違いは分かりません.また、onclick
バインディングイベントを使うのがもっと簡単だと自分で何度も感じました.やっと次第に理解し合ってきました.彼らの間の関係と違いをまとめます.onclick
は、DOM 0レベルイベントハンドラであり、第4世代Webブラウザに登場する(IE 4、Netscape 4).現在のブラウザは相変わらずaddEventListener
は、DOM 2レベルイベントハンドラonclick
はイベントキャプチャをサポートしていません.すなわち、イベントバブルのみをサポートします.addEventListener
はイベントトラッピングをサポートしています.すなわち、3番目のパラメータ設定はtrue onclick
は、DOM上の属性の一つであり、この属性はデフォルトでは一つのオブジェクトしか指すことができないので、一つの処理関数addEventListener
は、複数の処理関数btn.onclick = null
removeEventListener
onclick
とaddEventListener
のコード例を見てみましょう.var btn = document.getElementById('myBtn')
btn.onclick = function(){
//
}
btn.onclick = null //
//
var btn = documen.getElementById('myBtn')
var handler = function(){
//
}
btn.addEventListener('click', handler, false) // false( ),true
//
btn.removeEventListener('click', handler, false) //