位置:首页 > 软件操作教程 > 编程开发 > JavaScript > 问题详情

JavaScript 注销事件

提问人:刘团圆发布时间:2020-11-27

■知识点

在DOM事件模型中,使用removeEventListenerO方法可以从指定对象中删除己经注册的事件监听函数。其用法如下:

    element.removeEventListener(String type, Function listener, boolean useCapture);

参数说明参阅addEventListener()方法参数说明。

在IE事件模型中,使用detachEvent()方法注销事件。其用法如下:

    element.detachEvent(etype,eventName)

参数说明参阅attachEventO方法参数说明。

■实例设计

    下面的示例设计段落标签<p>仅响应一次光标经过行为。当第2次光标经过段落文本时,所注册的事件不再有效。为了能够兼容IE事件模型和DOM事件模型,使用if语句判断当前浏览器支持的事件处理模型,然后分别使用DOM注册方法和IE注册方法为段落文本注册mouseover和mouseout两个事件。当触发mouseout事件之后,再把mouseover和mouseout事件注销掉。

<P id="p1">注册兼容性事件</p>

<script>

var p1 = document.getElementByld("pi");

var f1 = function(){

    p1.style.background = 'blue';

};

var f2 = function(){

    p1.style.background = 'red';

    if(p1.detachEvent){

        p1.detachEvent("onmouseover", fl);

        p1.detachEvent("onmouseout", f2);

    }

    else{

        p1.removeEventListener("mouseover", fl);

        p1.removeEventListener("mouseout", f2);

if(p1.attachEvent){

    p1.attachEvent("onmouseover", f1);

    p1.attachEvent("onmouseout", f2);

}

else {

    p1.addEventListener("mouseover", f1);

    p1.addEventListener("mouseout", f2);

}

</script>

    removeEventListener()方法只能够删除addEventListener()方法注册的事件。如果使用onclick等直接写在元素上的事件,将无法使用removeEventListener()方法删除。

    当临时注册一个事件时,可以在处理完毕之后迅速删除它,这样能够节省系统资源。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部