事件:cancelable 属性
注意:此功能在Web Workers中可用。
cancelable
是 Event
接口的一个只读属性,指示事件是否可以取消,从而阻止事件发生,使其就像从未发生过一样。
如果事件不可取消,则其 cancelable
属性将为 false
,并且事件监听器无法阻止事件发生。
大多数可以取消的浏览器原生事件都是由用户与页面交互产生的。取消 click
、wheel
或 beforeunload
事件将分别阻止用户点击某个内容、使用鼠标滚轮滚动页面或离开页面。
由其他 JavaScript 代码创建的 合成事件 在创建时定义了它们是否可以取消。
要取消事件,请在事件上调用 preventDefault()
方法。这将阻止实现执行与事件关联的默认操作。
处理多种事件类型的事件监听器可能希望在调用其 preventDefault()
方法之前检查 cancelable
。
值
一个布尔值,如果事件可以取消,则为 true
。
示例
例如,浏览器供应商建议 wheel
事件只能在监听器第一次被调用时取消——任何后续的 wheel
事件都无法取消。
js
function preventScrollWheel(event) {
if (typeof event.cancelable !== "boolean" || event.cancelable) {
// The event can be canceled, so we do so.
event.preventDefault();
} else {
// The event cannot be canceled, so it is not safe
// to call preventDefault() on it.
console.warn(`The following event couldn't be canceled:`);
console.dir(event);
}
}
document.addEventListener("wheel", preventScrollWheel);
规范
规范 |
---|
DOM 标准 # ref-for-dom-event-cancelable② |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。