事件: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③ |
浏览器兼容性
加载中…