我需要在纯Javascript中做我在jQuery中轻松做的事情:
$('document').click(function(e){
e.preventDefault();
});
在某种程度上,jQuery保证我的事件首先运行,从而防止所有其他注册的点击事件都不会被执行。
当我尝试使用Javascript时
document.addEventListener('click', function(e){
e.preventDefault();
e.stopPropagation();
}, 1);
我的活动总是最后一次,所以我无法阻止其他人 无论如何要保证我添加的事件会被添加到堆栈顶部,所以先执行吗?
感谢
答案 0 :(得分:1)
这是不正确的。 event.preventDefault
不会阻止任何其他已注册的处理程序触发,它只会阻止“默认”行为(例如,对于anchor
)。
event.stopPropagation
将阻止事件进一步冒泡DOM树,因此这可能是更准确的描述。但是,使用addEventListener
或jQuery绑定事件没有区别(因为它将在下面使用相同的函数)。
你确定你在相同位置约束事件吗?