Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript事件堆栈_Javascript_Javascript Events - Fatal编程技术网

Javascript事件堆栈

Javascript事件堆栈,javascript,javascript-events,Javascript,Javascript Events,我需要在纯Javascript中完成我在jQuery中轻松完成的工作: $('document').click(function(e){ e.preventDefault(); }); 在某种程度上,jQuery保证我的事件首先运行,从而防止所有其他注册的点击事件都不会执行 当我尝试使用Javascript时 document.addEventListener('click', function(e){ e.preventDefault(); e.stopPropagatio

我需要在纯Javascript中完成我在jQuery中轻松完成的工作:

$('document').click(function(e){
   e.preventDefault();
});
在某种程度上,jQuery保证我的事件首先运行,从而防止所有其他注册的点击事件都不会执行

当我尝试使用Javascript时

document.addEventListener('click', function(e){
   e.preventDefault();
   e.stopPropagation();
}, 1);
我的活动总是排在最后,因此我无法阻止其他活动。
是否有任何方法可以保证我添加的事件将被添加到堆栈的顶部,因此首先执行


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

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


您确定要在同一位置绑定事件吗?

我使用的是一个库,出于某些原因,我需要在加载javascript之前加载该库,并且不能篡改代码。因此,他们的事件(带有匿名函数)在我的事件之前添加到文档中。如何停止它的运行?
event.stopImmediatePropagation()
将停止事件冒泡,并且不会为当前阶段调用任何其他侦听器。无论您使用jQUery还是
addEventListener
,都会产生很大的不同,因为jQUery完全模拟了它们自己的事件系统,只是轻轻地钩住DOM。jQuery的事件监听器是有序的,因为它们添加了一个新的监听器,按顺序调用所有监听器。事件是无序的,否则就处理它。抱歉,m8,但如果jQuery这样做,一定有办法。我会尝试对它进行反向工程,但如果有人有直接的答案会更容易。当然,你可以通过编写自己的事件系统来实现。jQuery就是这样做的,它有自己的事件系统。