DOM 事件流详解(2)


<script language="javascript">
function fnClick1(){
    alert("我被fnClick1点击了");
}
function fnClick2(){
    alert("我被fnClick2点击了");
    //oP.detachEvent("onclick",fnClick1);        //删除监听函数1
}
var oP;
window.onload = function(){
    oP = document.getElementById("myP");    //找到对象
    oP.attachEvent("onclick",fnClick1);        //添加监听函数1
    oP.attachEvent("onclick",fnClick2);        //添加监听函数2
}
</script>
</head>

<body>
    <div>
        <p>Click Me</p>
    </div>

3.标准DOM事件监听

与ie的两个方法对于,标准DOM也使用两个方法分别添加和删除监听函数。即addEventListener(),和removeEventListener()

与ie不同,这两个函数接受3个参数,即事件的名称,要分配的函数名和是用于冒泡阶段还是捕获阶段。捕获阶段的参数为true,冒泡阶段参数为false.语法如下:

复制代码 代码如下:


[object].addEventListener("event_name",fnHandler,bCapture);
[object].removeEventListener("event_name",fnHandler,bCapture);

这两个函数的使用方法和ie基本类似,只不过要注意,event_name的名称是“click”,“mouseover”等,而不是Ie中的“onclick”,“onmouseover”。

另外第三个参数bCapture通常设置为false,冒泡阶段。

标准dom的事件监听方法:

复制代码 代码如下:


    <script language="javascript">
            function fnClick1() {
                alert("我被点击了1");
                oP.removeEventListener("click", fnClick1, false);
            }

function fnClick2() {
                alert("我被点击了2");
            }

window.onload = function() {
                oP = document.getElementById("myP");
                oP.addEventListener("click", fnClick1, false);
                oP.addEventListener("click", fnClick2, false);
            }
        </script>
        <div>
            <p>Click Me</p>
        </div>

具体的执行顺序大家可测试。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgxysd.html