嗨,我需要在用户单击元素时阻止默认操作,并仅在该时间阻止其默认操作并需要执行一些其他操作。我用过的

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

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

最佳答案

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

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

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

// then later

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

注意:IE addEventListener 和 removeEventListener ,所以你需要使用这里提到的 attachEvent - https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener#Compatibility

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

10-12 13:03