事件: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② |
瀏覽器相容性
載入中…