JS事件探秘


<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>事件流</title>
</head>
<body>
<div id=”box”>
<input type=”button” value=”按钮1″ id=”btn1″ on
</div>
</body>
</html>
或者
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>事件流</title>
</head>
<body>
<div id=”box”>
<input type=”button” value=”按钮1″ id=”btn1″ on
</div>
<script type=”text/javas
function showMsg(){
alert(“hello”);
}
</script>
</body>
</html>
那么HTML事件处理程序有一种很明显的缺点:HTML与JS代码紧密的耦合在一起,这不是这一种好的程序设计。
<input type=”button” value=”按钮2″ id=”btn2″>
var btn2 = document.getElementById("btn2");btn2.onclick = function(){ alert("这是通过DOM0级添加的事件!");}btn2.on
<div id=”box”>
<input type="button" value="按钮1" id="btn1" onclick="showMsg()"> <input type="button" value="按钮2" id="btn2"> <input type="button" value="按钮3" id="btn3"></div><script type="text/javascript">function showMsg(){ alert("hello");}var btn2 = document.getElementById("btn2");var btn3 = document.getElementById("btn3");btn2.onclick = function(){ alert("这是通过DOM0级添加的事件!");}btn2.onclick = null;//DOM2级事件btn3.addEventListener("click",function(){ //获取按钮的文本 alert(this.value);},false);//删除事件btn3.removeEventListener("click",showMsg,false);</script>btn3.attachEvent(“on
var eventUtil = {
//添加句柄 addHandle:function(element,type,handle){ if (element.addEventListener) { element.addEventListener(type,handle,false); }else if(element.attachEvent){ element.attachEvent("on"+type,handle); }else{ element["on"+type] = handle; }; }, //删除句柄 removeHandle:function(element,type,handle){ if (element.removeEventListener) { element.removeEventListener(type,handle,false); }else if(element.dettachEvent){ element.dettachEvent("on"+type,handle); }else{ element["on"+type] = null; }; }}//调用eventUtil.addHandle(btn3,"click",showMsg);
function showMsg(event){
alert(event.type); //click}function showMsg(event){
alert(event.target.nodeName); //input}<!DOCTYPE html> <html lang=”en”> <head> <meta charset=”UTF-8″> <title>事件</title> <script src=”js/event.js”></script> </head> <body> <a href=”index.html” id=”go”>跳转</a> <script type=”text/javascript”> var go = document.getElementById(“go”); go.onclick = function(event){ if(event && event.preventDefault){ event.preventDefault(); }else{ window.event.returnValue = false; } alert(“我阻止了你”); } </script> </body> </html>