Javascript事件堆栈

时间:2012-01-20 11:01:31

标签: javascript javascript-events

我需要在纯Javascript中做我在jQuery中轻松做的事情:

$('document').click(function(e){
   e.preventDefault();
});

在某种程度上,jQuery保证我的事件首先运行,从而防止所有其他注册的点击事件都不会被执行。

当我尝试使用Javascript时

document.addEventListener('click', function(e){
   e.preventDefault();
   e.stopPropagation();
}, 1);

我的活动总是最后一次,所以我无法阻止其他人 无论如何要保证我添加的事件会被添加到堆栈顶部,所以先执行吗?

感谢

1 个答案:

答案 0 :(得分:1)

这是不正确的。 event.preventDefault不会阻止任何其他已注册的处理程序触发,它只会阻止“默认”行为(例如,对于anchor)。

event.stopPropagation将阻止事件进一步冒泡DOM树,因此这可能是更准确的描述。但是,使用addEventListener或jQuery绑定事件没有区别(因为它将在下面使用相同的函数)。

你确定你在相同位置约束事件吗?