javascript - 在 javascript 中删除 preventDefault 和 stopPropagation

标签 javascript

您好,我需要阻止用户单击某个元素时的默认操作,并仅在该时间阻止其默认操作,并且需要执行一些其他操作。为此我使用了

document.body.onclick = function (e) {
    e.preventDefault();
    e.stopPropagation();
}

但现在的问题是,在执行上述操作后,我需要删除 preventDefaultstopPropagation,因为没有任何链接(a href)被触发在这之后。那么执行后如何撤消呢?请注意,它是纯 JavaScript 代码,我没有使用任何库,如 jquery。所以我不能使用 .bind.unbind。对此有任何想法将不胜感激。

最佳答案

您可以使用 addEventListenerremoveEventListener 复制 bindunbind 的行为

function stopIt(e) {
  e.preventDefault();
  e.stopPropagation();
}

document.body.addEventListener("click", stopIt);

// then later

document.body.removeEventListener("click", stopIt);

注意:IE <= 8 不支持 addEventListenerremoveEventListener,因此您需要使用 attachEvent,如此处所述 - https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener#Compatibility

关于javascript - 在 javascript 中删除 preventDefault 和 stopPropagation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121584/

相关文章:

javascript - Visual Studio Code - 挖空 - 找不到名称 'ko'

javascript - React shouldComponentUpdate() = false 不停止重新渲染

连接值时发生 Javascript 错误

javascript - 如何从nodejs服务器流式传输到客户端

javascript - 来自单个请求的 ajax 请求数组

javascript - border-left-width 的 getComputedStyle 或 currentStyle

php - 限制每秒/分钟发送联系表单电子邮件

php - 为什么使用 json 的 javascript 库选择 [ { } , { } ] 结构

javascript - 在 React 中使用 Immutable.js 更改状态

javascript - Mongoose 将 If 添加到中间件