JavaScript HTML DOM removeEventListener() 方法

  • HTML DOM removeEventListener() 方法

    document.removeEventListener()方法删除已使用document.addEventListener()方法附加的事件处理程序。
    注意:要删除事件处理程序,使用addEventListener()方法指定的函数必须是外部的“命名”函数,如下例(myFunction)中所示。匿名函数,如“document.removeEventListener("event",function(){ myScript });” 不管用。
    提示:使用element.addEventListener()element.removeEventListener()方法来从一个指定的元素添加/移除事件处理程序。
    实例:
    删除已使用addEventListener()方法附加的“mousemove”事件:
    // 将事件处理程序附加到文档
    document.addEventListener("mousemove", myFunction);
    
    // 从文档中删除事件处理程序
    document.removeEventListener("mousemove", myFunction);
    
    尝试一下
  • 浏览器支持

    IE/Edge Chrome FireFox Safari Opera
    方法
    removeEventListener()
    9.0+
    1.0+
    1.0+
    1.0+
    7.0+
    注意: Internet Explorer 8及早期版本以及Opera 6.0及更早版本不支持removeEventListener()方法。但是,对于这些特定的浏览器版本,您可以使用detachEvent()方法删除已使用attachEvent()方法附加的事件处理程序(有关跨浏览器的解决方案,请参阅下面的“更多示例”)。
  • 语法

    document.removeEventListener(event, function, useCapture)
  • 参数值

    参数 描述
    event 必需的。 一个字符串,指定要删除的事件的名称。
    注意:请勿使用“on”前缀。 例如,使用“click”而不是“onclick”。
    提示:有关所有HTML DOM事件的列表,请查看完整的HTML DOM事件对象参考。
    function 必需的。 指定要删除的函数。
    useCapture 可选的。 一个布尔值,指定从中删除事件处理程序的事件阶段。可能的值:
    • true - 从捕获阶段删除事件处理程序
    • false - 默认。 从冒泡阶段中删除事件处理程序
    注意:如果事件处理程序连接了两次,一次有捕获和一次冒泡,则必须分别删除每个事件处理程序。
    注意:useCapture参数在Firefox 6和Opera 12.0中变为可选(Chrome,IE和Safari一直是可选的)
  • 技术细节

    项目 描述
    返回值:
    DOM版本 Core Level 2
  • 更多例子

    对于不支持removeEventListener()方法的浏览器,可以使用detachEvent()方法。此示例演示了跨浏览器解决方案:
    if (document.removeEventListener) {         // 对于所有主流浏览器,IE 8及更早版本除外
      document.removeEventListener("mousemove", myFunction);
    } else if (document.detachEvent) {          // 适用于IE 8及更早版本
      document.detachEvent("onmousemove", myFunction);
    }
    
    尝试一下
  • 相关页面

    JavaScript 教程 JavaScript 事件监听器