<input type="button" value="click me!" onclick="showMessage()"/><script>function showMessage(){ alert("clicked!");}</script>删除事件处理程序:<input id="myBtn" type="button" value="click me!"/><script> var myBtn=document.getElementById("myBtn"); myBtn.addEventListener("click",function(){alert("hello"); },false); myBtn.addEventListener("click",function(){alert("world"); },false);</script>删除事件处理程序:通过addEventListener添加的事件处理程序必须通过removeEventListener删除,且参数一致。<input id="myBtn" type="button" value="click me!"/><script> var myBtn=document.getElementById("myBtn"); var handler=function(){alert("hello"); } myBtn.addEventListener("click",handler,false); myBtn.removeEventListener("click",handler,false);</script>二、IE事件处理程序
2、IE8事件绑定
IE8及以下版本浏览器实现了与DOM中类似的两个方法:attachEvent()和detachEvent()。
这两个方法都需要两个参数:事件处理程序名称和事件处理程序函数。
note:
IE11只支持addEventListener!
IE9,IE10对attachEvent和addEventListener都支持!
TE8及以下版本只支持attachEvent!
可以拿下面代码在IE各个版本浏览器中进行测试。
<input id="myBtn" type="button" value="click me!"/><script> var myBtn=document.getElementById("myBtn"); var handlerIE=function(){alert("helloIE"); } var handlerDOM= function () {alert("helloDOM"); } myBtn.addEventListener("click",handlerDOM,false); myBtn.attachEvent("onclick",handlerIE);</script>添加事件处理程序:现在为按钮添加两个事件处理函数,一个弹出“hello”,一个弹出“world<script> var myBtn=document.getElementById("myBtn"); myBtn.attachEvent("onclick",function(){alert("hello"); }); myBtn.attachEvent("onclick",function(){alert("world"); });</script>note:这里运行效果值得注意一下:<input id="myBtn" type="button" value="click me!"/><script> var myBtn=document.getElementById("myBtn"); var handler= function () {alert("hello"); } myBtn.attachEvent("onclick",handler); myBtn.detachEvent("onclick",handler);</script>note:IE事件处理程序中还有一个地方需要注意:作用域。<input id="myBtn" type="button" value="click me!"/><script> var myBtn=document.getElementById("myBtn"); myBtn.attachEvent("onclick",function(){alert(this===window); });</script>在编写跨浏览器的代码时,需牢记这点。//判断IE78 兼容性检测 var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest; var isIE8=isIE&&!!document.documentMode; var isIE7=isIE&&!isIE6&&!isIE8; if(isIE8 || isIE7){li.attachEvent("onclick",function(){ _marker.openInfoWindow(_iw);})}else{li.addEventListener("click",function(){ _marker.openInfoWindow(_iw);}) }以上所述是小编给大家介绍的JavaScript事件学习小结(二)js事件处理程序的相关知识,希望对大家有所帮助!