简短的问题是:event.preventDefault()
无论您在哪个元素上设置事件处理程序,只要该元素是“捕获”、“at”和“冒泡”阶段的一部分,你能做到吗?
我想让页面上的所有内容都无法选择,所以起初我想做
document.addEventListener("selectstart", function(ev) {
ev.stopPropagation();
}, true);
这样当它在捕获阶段的最开始时,它不会传播到页面内容元素,那么不会进行任何选择。
但看起来即使它停止传播,默认操作仍会执行。
然后,我尝试在捕获阶段执行此操作:
document.addEventListener("selectstart", function(ev) {
ev.preventDefault();
}, true);
然后将 更改true
为false
以使处理程序在冒泡阶段被调用:
document.addEventListener("selectstart", function(ev) {
ev.preventDefault();
}, false);
它也有效。
我曾经认为“preventDefault”是每个元素。
那么,在整个捕获阶段、at 阶段和冒泡阶段,您是否可以调用ev.preventDefault()
它并且它是完全相同的事件对象,并且无论您将处理程序设置在哪个元素上,您都可以阻止默认操作,只要元素在“捕获”、“在”和“冒泡”循环中?