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>