DOM 事件是在 HTML 元素上可以执行的动作。当事件发生时,它触发一个 JavaScript 函数,该函数随后可以用来改变 HTML 元素或执行其他操作。
以下是一些 DOM 事件的例子:
-
Click - 当用户点击 HTML 元素时触发此事件。
-
Load - 当 HTML 元素加载时触发此事件。
-
Change - 当 HTML 元素的值改变时触发此事件。
-
Submit - 当 HTML 表单提交时触发此事件。
你可以使用事件处理器或 addEventListener() 方法来监听并响应 DOM 事件。addEventListener() 方法接受两个参数:事件的名称以及希望在事件发生时调用的函数。
DOM 事件也被称为文档对象模型事件。它用于在任何事件发生时与 DOM 元素交互并从 JavaScript 操纵这些元素。
让我们看一些 DOM 事件的例子。
onclick 事件类型
这是最常用的事件类型,在用户点击鼠标左键时发生。你可以在这个事件类型中设置你的验证、警告等。
示例
尝试下面的例子。
<html>
<head>
<script>
function sayHello() {
alert("Hello World")
}
</script>
</head>
<body>
<p>点击下面的按钮看看结果</p>
<form>
<input type = "button" onclick = "sayHello()" value = "Say Hello" />
</form>
</body>
</html>
ondblclick 事件类型
我们在下面的代码中使用了 ondblclick 事件处理器与元素。当用户双击按钮时,它调用 changeColor() 函数。
在 changeColor() 函数中,我们改变了文本的颜色。因此,当用户双击按钮时,代码将会改变文本的颜色。
示例
<html>
<body>
<h2 id = "text"> Hi Users! </h2>
<button ondblclick="changeColor()"> Double click me! </button>
<script>
function changeColor() {
document.getElementById("text").style.color = "red";
}
</script>
</body>
</html>
onkeydown 事件类型
我们在下面的代码中使用了 keydown 事件与 <input> 元素。每当用户按下任意键时,它将调用 customizeInput() 函数。
在 customizeInput() 函数中,我们将输入框的背景颜色和输入文本颜色改为红色。
示例
<html>
<body>
<p> 按下任意键输入字符 </p>
<input type = "text" onkeydown = "customizeInput()">
<script>
function customizeInput() {
var ele = document.getElementsByTagName("INPUT")[0];
ele.style.backgroundColor = "yellow";
ele.style.color = "red";
}
</script>
</body>
onmouseenter 和 onmouseleave 事件
在下面的代码中,我们使用 onmouseenter 和 onmouseleave 事件处理器为 <div> 元素添加悬停效果。
当鼠标指针进入 <div> 元素时,它调用 changeRed() 函数将文本颜色变为红色;当鼠标指针离开 <div> 元素时,它调用 changeBlack() 函数将文本颜色恢复为黑色。
示例
<html>
<body>
<div id = "text" style = "font-size: 20px;" onmouseenter = "changeRed()" onmouseleave = "changeBlack()"> Hover over the text. </div>
<script>
function changeRed() {
document.getElementById("text").style.color = "red";
}
function changeBlack() {
document.getElementById("text").style.color = "black";
}
</script>
</body>
</html>
HTML 5 标准 DOM 事件
下面列出了标准的 HTML 5 事件供参考。这里的 script 指的是要针对该事件执行的 JavaScript 函数。
事件列表
| 属性 |
值 |
描述 |
| Offline |
script |
在文档离线时触发 |
| Onabort |
script |
在终止事件时触发 |
| onafterprint |
script |
在文档打印之后触发 |
| onbeforeonload |
script |
在文档加载前触发 |
| onbeforeprint |
script |
在文档打印前触发 |
| onblur |
script |
在窗口失去焦点时触发 |
| oncanplay |
script |
在媒体可以开始播放但可能会因缓冲而停止时触发 |
| oncanplaythrough |
script |
在媒体可以播放到结束而不会停止缓冲时触发 |
| onchange |
script |
在元素改变时触发 |
| onclick |
script |
在鼠标点击时触发 |
| oncontextmenu |
script |
在触发上下文菜单时触发 |
| ondblclick |
script |
在鼠标双击时触发 |
| ondrag |
script |
在元素被拖动时触发 |
| ondragend |
script |
在拖动操作结束时触发 |
| ondragenter |
script |
在元素被拖动到有效放置目标上时触发 |
| ondragleave |
script |
在元素正在被拖动经过有效放置目标时触发 |
| ondragover |
script |
在拖动操作开始时触发 |
| ondragstart |
script |
在拖动操作开始时触发 |
| ondrop |
script |
在拖动元素被释放时触发 |
| ondurationchange |
script |
在媒体长度改变时触发 |
| onemptied |
script |
在媒体资源元素突然变得空时触发 |
| onended |
script |
在媒体达到结尾时触发 |
| onerror |
script |
在发生错误时触发 |
| onfocus |
script |
在窗口获得焦点时触发 |
| onformchange |
script |
在表单改变时触发 |
| onforminput |
script |
在表单获得用户输入时触发 |
| onhaschange |
script |
在文档改变时触发 |
| oninput |
script |
在元素获得用户输入时触发 |
| oninvalid |
script |
在元素无效时触发 |
| onkeydown |
script |
在按键被按下时触发 |
| onkeypress |
script |
在按键被按下并释放时触发 |
| onkeyup |
script |
在按键被释放时触发 |
| onload |
script |
在文档加载时触发 |
| onloadeddata |
script |
在媒体数据加载时触发 |
| onloadedmetadata |
script |
在媒体元素的持续时间和其他媒体数据加载时触发 |
| onloadstart |
script |
在浏览器开始加载媒体数据时触发 |
| onmessage |
script |
在消息被触发时触发 |
| onmousedown |
script |
在鼠标按钮被按下时触发 |
| onmousemove |
script |
在鼠标指针移动时触发 |
| onmouseout |
script |
在鼠标指针移出元素时触发 |
| onmouseover |
script |
在鼠标指针移过元素时触发 |
| onmouseup |
script |
在鼠标按钮被释放时触发 |
| onmousewheel |
script |
在鼠标滚轮旋转时触发 |
| onoffline |
script |
在文档离线时触发 |
| ononline |
script |
在文档上线时触发 |
| onpagehide |
script |
在窗口隐藏时触发 |
| onpageshow |
script |
在窗口变得可见时触发 |
| onpause |
script |
在媒体数据暂停时触发 |
| onplay |
script |
在媒体数据即将开始播放时触发 |
| onplaying |
script |
在媒体数据已开始播放时触发 |
| onpopstate |
script |
在窗口的历史变化时触发 |
| onprogress |
script |
在浏览器正在获取媒体数据时触发 |
| onratechange |
script |
在媒体数据的播放速率改变时触发 |
| onreadystatechange |
script |
在准备状态改变时触发 |
| onredo |
script |
在文档执行重做时触发 |
| onresize |
script |
在窗口大小改变时触发 |
| onscroll |
script |
在元素的滚动条正在滚动时触发 |
| onseeked |
script |
在媒体元素的寻求属性不再为真并且寻求结束时触发 |
| onseeking |
script |
在媒体元素的寻求属性为真并且寻求开始时触发 |
| onselect |
script |
在元素被选择时触发 |
| onstalled |
script |
在获取媒体数据时发生错误时触发 |
| onstorage |
script |
在文档加载时触发 |
| onsubmit |
script |
在表单提交时触发 |
| onsuspend |
script |
在浏览器获取媒体数据但在整个媒体文件获取前停止时触发 |
| ontimeupdate |
script |
在媒体改变其播放位置时触发 |
| onundo |
script |
在文档执行撤销时触发 |
| onunload |
script |
在用户离开文档时触发 |
| onvolumechange |
script |
在媒体改变音量包括设为静音时触发 |
| onwaiting |
script |
在媒体停止播放但预计将继续播放时触发 |