事件注册 addEventListener attachEvent removeEventListener detachEvent

北战南征 提交于 2020-02-21 14:33:35
 

 

<!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>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!