您好,我需要阻止用户单击某个元素时的默认操作,并仅在该时间阻止其默认操作,并且需要执行一些其他操作。为此我使用了
document.body.onclick = function (e) {
e.preventDefault();
e.stopPropagation();
}
但现在的问题是,在执行上述操作后,我需要删除 preventDefault
和 stopPropagation
,因为没有任何链接(a href)被触发在这之后。那么执行后如何撤消呢?请注意,它是纯 JavaScript 代码,我没有使用任何库,如 jquery。所以我不能使用 .bind
和 .unbind
。对此有任何想法将不胜感激。
最佳答案
您可以使用 addEventListener
和 removeEventListener
复制 bind
和 unbind
的行为
function stopIt(e) {
e.preventDefault();
e.stopPropagation();
}
document.body.addEventListener("click", stopIt);
// then later
document.body.removeEventListener("click", stopIt);
注意:IE <= 8 不支持 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/