JavaScript Element removeEventListener() 方法

  • JavaScript Element removeEventListener() 方法

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

    IE/Edge Chrome FireFox Safari Opera
    方法
    removeEventListener()
    9.0+
    1.0+
    1.0+
    1.0+
    7.0+
  • 语法

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

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

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

    对于不支持removeEventListener()方法的浏览器,可以使用detachEvent()方法。此示例演示了跨浏览器解决方案:
    var x = document.getElementById("myDIV");
    if (x.removeEventListener) {                   // For all major browsers, except IE 8 and earlier
      x.removeEventListener("mousemove", myFunction);
    } else if (x.detachEvent) {                    // For IE 8 and earlier versions
      x.detachEvent("onmousemove", myFunction);
    }
    
    尝试一下
  • 相关页面

    JavaScript教程:HTML DOM EventListener
    JavaScript参考:document.removeEventListener()