javascript - 如何使用此函数删除事件监听器

标签 javascript dom-events

我是 JavaScript 事件的初学者,我在工作时看到了下面的代码。

我知道在添加和删除事件监听器时我必须有单个函数,所以查看我的代码:

document.getElementById("formId").addEventListener("submit", function(event) {
                event = event || window.event;
                if (event.preventDefault) {
                    event.preventDefault();
                } else {
                    event.returnValue = false;
                }
            });

如何删除此事件监听器?

这是由提交事件造成的,所以当我想删除这个事件监听器时,如何捕获这个事件并再次使用它来通过上面的函数删除事件监听器?

最佳答案

您可以按如下方式删除事件监听器:document.getElementById("formId").removeEventListener('submit', handleSubmit);

完整代码示例:

function handleSubmit(event) {
    event = event || window.event;
    if (event.preventDefault) {
        event.preventDefault();
    } else {
        event.returnValue = false;
    }
}
document.getElementById("formId").addEventListener("submit", handleSubmit);

document.getElementById("formId").removeEventListener("submit", handleSubmit);

文档中的更多选项:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener

关于javascript - 如何使用此函数删除事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42393692/

相关文章:

javascript - 映射到 react 中的对象

javascript - 如何在 Node js中设置 Node 计划作业,使其在服务器重新启动后不会销毁

javascript - 如何检测第三方网站上的 JavaScript 事件

javascript - 鼠标按钮向上

javascript - Window.postMessage() 问题

javascript - 如何从世博会推送通知中删除应用程序名称?

javascript - 使用带有 symfony 的 AJAX 按类别过滤部分时出错

javascript - 在页面内跳转而不重新加载要监听什么事件?

javascript - 如何将相同的事件监听器添加到多个标记,然后在 Google Maps API v3 中区分监听器中的标记?

javascript - 告诉 fetch() 根本不发送 Content-Type header