【发布时间】:2020-11-19 17:04:11
【问题描述】:
我正在尝试禁用网页上的每个点击事件。
只需将此代码复制/粘贴到您的控制台中即可:
document.addEventListener("click", function (e) {
e.preventDefault();
e.stopImmediatePropagation();
let clicked = e.target;
console.log(clicked);
});
这应该可以防止每次点击事件吧?但我仍然发现它被忽略的情况(主要是链接)。我错过了什么?
【问题讨论】:
-
您可以尝试在末尾添加
true:}, true);,以便在捕获阶段而不是冒泡阶段调用处理程序 -
这会“停止”一直冒泡到文档根元素的点击事件。这不会阻止事件处理程序或元素以这种方式对“点击”做出反应
-
不,它只会阻止
document上的点击事件做任何事情。该事件将在它冒出这么高之前完成正常的事情。 -
@blex 看起来可行!谢谢大佬
-
@ozgur 我相信这里使用的
e.stopImmediatePropagation()应该足够了,基于一些测试和on this。 “除了阻止元素上的任何其他处理程序被执行外,此方法还通过隐式调用 event.stopPropagation() 来停止冒泡”
标签: javascript addeventlistener preventdefault