IE事件模型,如何给IE和非IE浏览器添加事件

<!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事件模型

事件传播过程:

原文地址:https://www.cnblogs.com/zxj95121/p/5635888.html