删除javascript中的preventDefault和stopPropagation

删除javascript中的preventDefault和stopPropagation,javascript,Javascript,嗨,我需要在用户单击某个元素时阻止默认操作,并且仅在该时间阻止其默认操作,并且需要执行其他一些操作。我用过的 document.body.onclick = function (e) { e.preventDefault(); e.stopPropagation(); } 但现在的问题是,在执行上述操作后,我需要删除preventDefault和stopPropagation,因为在此之后没有任何链接(a href)被触发。那么,执行后如何撤消此操作?请注意,这是一个纯Java

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

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

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

不要将事件绑定到正文,请将事件绑定到您需要阻止的元素:

document.getElementById('theTarget').onclick = function(e) {
    // ...
}

您可以使用
addEventListener
removeEventListener
复制
bind
unbind
的行为

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

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

// then later

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

注:IE如果我正确理解您的要求,恐怕您无法撤消
e.preventDefault()。但是默认情况下,处理函数将在执行默认操作之前执行。因此,在您的情况下,您不需要
e.preventDefault()完全正确。并记住仅将事件侦听器附加到
标记

var aTags = document.getElementsByTagName("a");

for (var i=0;i<aTags.length;i++){
    aTags[i].onclick = function (e) {
       // just perform your action here, don't need e.preventDefault();
    }
}
var-aTags=document.getElementsByTagName(“a”);
对于(var i=0;i