事件注册 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>