• addEventListener和attachEvent区别


    addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome、FireFox、Opera、Safari、IE9.0及其以上版本都支持该函数;但是,IE8.0及其以下版本不支持该方法,它使用attachEvent()来绑定事件监听函数。所以,这种绑定事件的方法必须要处理浏览器兼容问题。

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style type="text/css">
     7 
     8     </style>
     9 </head>
    10 <body>
    11 <button id="myBtn">点击</button>
    12 <p id="demo"></p>
    13 <script type="text/javascript">
    14     var E = {
    15         /***
    16          * 在主流浏览器中
    17          * element.addEventListener(type, fn, false);
    18          * @param element 文档节点 document window XMLHttpRequest
    19          * @param type 字符串,事件名称,不含"on~", 比如"click", "mousemove", "keydown"
    20          * @param useCapture 是否使用捕捉,一般用 false.
    21          * 在低版本的IE浏览器中
    22          * element.attachEvent("onclick", fn);
    23          *  @param type 字符串,事件名称,含"on~",比如"onclick", "onmousemove", "onkeydown"
    24          *  @param fn 实现了EventListener接口或者是JavaScript中的函数
    25          */
    26         add: function (element, type, fn) {
    27             if(element.addEventListener){
    28                 element.addEventListener(type, fn, false);//第三个参数默认值为false,所以如果不写其值默认为false
    29             }else if(window.attachEvent){
    30                 element.attachEvent("onclick", fn);
    31             }
    32         }
    33     };
    34     var element = document.getElementById("myBtn");
    35     function showText(){
    36         document.getElementById("demo").innerHTML = "你点击了这个按钮!";
    37     }
    38     E.add(element, 'click', showText);
    39 </script>
    40 </body>
    41 </html>
  • 相关阅读:
    为什么不直接使用socket ,还要定义一个新的websocket 的呢
    js-权威指南-Web套接字
    CSS-蜂窝状展示区域(多个六边形)的一种实现方式
    MQTT入门介绍
    【珍惜时间】vuepro
    搭建react的vw架构时候报 Cannot load preset "advanced".
    跟我一起使用create-react-app脚手架搭建vw-layout解决方案
    【珍惜时间】iReport
    vue中 给router-view 组件的 绑定 key 的原因
    SQL Server Index详解
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/5941957.html
Copyright © 2020-2023  润新知