<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>IE事件模型</title>
</head>
<body>
<input type="button" value="Event对象"/>
<p>事件传播过程:</p>
<script>
window.onload=function(){
var btn=document.getElementsByTagName("input")[0];
var p=document.getElementsByTagName("p")[0];
var i=1;
do{
if(btn.addEventListener)
{
btn.addEventListener("click",function(){
p.innerHTML+="<br/>("+ i++ +") "+this.nodeName;
},false);
}
else
{
btn.attachEvent("onclick",(function(btn){
return function(){ //返回闭包函数,从而动态锁定响应事件的当前对象
p.innerHTML+="<br/>("+ i++ +") "+btn.nodeName;
}
})(btn)); //直接调用函数,以便向内部传递当前绑定元素对象
}
btn=btn.parentNode;
}while(btn);
}
</script>
</body>
</html>
IE事件模型
事件传播过程: