事件注册 addEventListener attachEvent removeEventListener detachEvent

 
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>事件注册</title>
    </head>
    <body>
        <button id="btn" value="按钮">按钮</button>
        <script type="">
            window.onload = function(){
                var btn = document.getElementById("btn");
                
                var handler = function(){
                    alert("thanks!");
                }
                //addEventListener(事件类型不要加“on”,事件发生时调用的函数,布尔值一般为false若为true函数将注册为捕获时间处理程序)
                if (btn.addEventListener) {//ie8及之前版本外的所有浏览器支持的标准事件模型
                    btn.addEventListener("click", handler, false);
                } else if(btn.attachEvent){//兼容ie9以下版本
                    btn.attachEvent("onclick", handler);//attachEvent(事件类型要加“on”,事件发生时调用的函数)
                }else{
                    btn.onclick = handler;//普通注册事件
                }
                
                //封装自己的 句柄事件 
                var myUtilEvent = {
                    myAddHandler:function(element, eType, hanlder){//添加句柄
                        if(element.addEventListener){//ie8及之前版本外的所有浏览器支持的标准事件模型
                            element.addEventListener(eType, hanlder, false);
                        }else if(element.attachEvent){
                            element.attachEvent(eType, hanlder);//兼容ie9以下版本
                        }else{
                            element["on" + eType] = hanlder;
                        }
                    },
                    myRemoveHandler:function(element, eType, hanlder){//删除句柄
                        if(element.removeEventListener){
                            element.removeEventListener(eType, hanlder, false);
                        }else if(element.detachEvent){
                            element.detachEvent("on" + eType, hanlder);
                        }else{
                            element["on" + eType] = null;
                        }
                    }
                }
                
                //封装后上面即可这样调用,跟上面的结果一样
                myUtilEvent.myAddHandler(btn, 'click', handler);
            
            }
        </script>
    </body>
</html>
原文地址:https://www.cnblogs.com/webgg/p/5314534.html