# 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动画 事件高级 →