事件:preventDefault() 方法
注意:此功能在 Web Workers 中可用。
preventDefault() 方法是 Event 介面的一部分,它告知 使用者代理 該事件正在被顯式處理,因此不應執行其預設操作,例如頁面滾動、連結導航或文字貼上。
事件將像往常一樣繼續傳播,除非其某個事件監聽器呼叫了 stopPropagation() 或 stopImmediatePropagation(),其中任何一個都會立即終止傳播。
如下文所述,對非取消型事件(例如透過 EventTarget.dispatchEvent() 分派的事件)呼叫 preventDefault() 而不指定 cancelable: true 將不起作用。
如果一個被動監聽器呼叫了 preventDefault(),則不會發生任何事情,並且可能會生成控制檯警告。
語法
js
preventDefault()
引數
無。
返回值
無(undefined)。
示例
阻止預設的點選處理
切換複選框是點選複選框的預設操作。此示例演示瞭如何阻止這種情況發生。
JavaScript
js
const checkbox = document.querySelector("#id-checkbox");
checkbox.addEventListener("click", checkboxClick);
function checkboxClick(event) {
const warn = "preventDefault() won't let you check this!\n";
document.getElementById("output-box").innerText += warn;
event.preventDefault();
}
HTML
html
<p>Please click on the checkbox control.</p>
<form>
<label for="id-checkbox">Checkbox:</label>
<input type="checkbox" id="id-checkbox" />
</form>
<div id="output-box"></div>
結果
注意
在事件流的任何階段呼叫 preventDefault() 都會取消該事件,這意味著由該事件正常引起的任何預設操作都不會發生。
您可以使用 Event.cancelable 來檢查事件是否可取消。對不可取消的事件呼叫 preventDefault() 將不起作用。
規範
| 規範 |
|---|
| DOM # ref-for-dom-event-preventdefault③ |
瀏覽器相容性
載入中…