JS示例35-事件绑定方式二

  • 2019 年 11 月 7 日
  • 笔记

一、知识要点

可以重复绑定相同事件,避免事件被覆盖

二、源码参考

<!DOCTYPE html>  <html>        <head>          <meta charset="utf-8" />          <title></title>          <script type="text/javascript">              window.onload = function() {                  var btn1 = document.getElementById('btn1');                  var btn2 = document.getElementById('btn2');                    // 绑定方式一                  btn1.onclick = function() {                      alert('绑定方式一~onclick')                  }                  // 绑定方式二                  if(btn2.attachEvent) {                      btn2.attachEvent('onclick', function() {                      alert('绑定方式二~attachEvent');                      })                  } else {                      btn2.addEventListener('click', function() {                          alert('绑定方式二~addEventListener');                      }, false)                  }              }          </script>      </head>        <body>          <input type="button" name="btn1" id="btn1" value="点击1" />          <input type="button" name="btn2" id="btn2" value="点击2" />      </body>    </html>

封装

<!DOCTYPE HTML>  <html>    <head>      <meta charset="utf-8">      <title>无标题文档</title>      <script>          // 封装成通用方法          function myAddEvent(obj, ev, fn) {              if (obj.attachEvent) {                  obj.attachEvent('on' + ev, fn); // IE onclick              } else {                  obj.addEventListener(ev, fn, false); // 非IE click              }          }            window.onload = function () {              var oBtn = document.getElementById('btn1');                myAddEvent(oBtn, 'click', function () {                  alert('a');              });                myAddEvent(oBtn, 'click', function () {                  alert('b');              });          };      </script>  </head>    <body>      <input id="btn1" type="button" value="按钮" />  </body>    </html>