事件:cancelable 属性
注意:此功能在 Web Workers 中可用。
Event 接口的只读属性 **cancelable** 指示事件是否可以被取消,从而阻止其发生,就好像事件从未发生过一样。
如果事件不能被取消,则其 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② |
浏览器兼容性
加载中…