# DOM事件模型(DOM Event Model)
事件是可以被 JavaScript 侦测到的行为,例如鼠标点击、键盘按键等。js与html的交互就是通过事件来进行的。
# 事件驱动
事件驱动
─────────────────────────────────────────────────────────────
┌──────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │
│ Source │ ───── │ Event │ ───── │ Handle │
│ │ │ │ │ │
└──────────┘ └──────────┘ └──────────┘
事件源 事件 事件处理程序
element . onclick = function(){}
window . onload = function(){}
─────────────────────────────────────────────────────────────
# 事件集合
# 鼠标事件
| 事件 | 描述 |
|---|---|
| onclick | 点击 |
| ondblclick | 双击 |
| onmousedown | 按下 |
| onmouseup | 抬起 |
| onmousemove | 移动 |
| onmouseover | 移入 |
| onmouseout | 移出 |
| onmouseenter | 鼠标指针移动到元素上时触发(不支持冒泡) |
| onmouseleave | 鼠标指针移出元素上时触发(不支持冒泡) |
| oncontextmenu | 右键 |
# 键盘事件
| 事件 | 描述 |
|---|---|
| onkeydown | 按下 |
| onkeyup | 抬起 |
| onkeypress | 按下(只能触发数字字母符号) |
# 表单事件
| 事件 | 描述 |
|---|---|
| onfocus | 获得焦点 |
| onblur | 失去焦点 |
| onchange | 失去焦点并内容改变 |
| onsubmit | 提交事件(form标签事件) |
| onreset | 重置事件(form标签事件) |
| oninput | 表单输入 |
# 其他事件
| 事件 | 描述 |
|---|---|
| onscroll | 滚动条事件(滚动条位置改变) |
| onwheel | 鼠标滚轮事件 |
| onresize | 页面尺寸改变 |
| onload | 页面加载完成之后执行该事件 |
| DOMContentLoaded | 页面结构加载完成执行该事件 |
# 绑定事件的方式
# 标签绑定事件
<button onclick="click_fn()">click</button>
<script>
function click_fn(){
console.log(this);
}
</script>
# Document对象来绑定事件
注意:重复监听某一事件,后者会覆盖前者,而不会两者先后触发
<button>click</button>
<script>
var button1 = document.querySelector('button')
button1.onclick=function(){
console.log("第一个点击事件的方法");
}
var button2 = document.querySelector('button')
button2.onclick=function(){
console.log("第二个点击事件的方法");
} //第二个点击事件的方法会覆盖第一个方法,所以点击只会触发第二次的点击事件方法
</script>
← JavaScript动画 事件高级 →