JS的事件操作
事件处理程序
事件处理程序分为:
- HTML事件处理
HTML
和Js
代码耦合
- DOM0级事件处理
- 一个事件只能生效最后一个相应, 先前出现的会被覆盖
- DOM2级事件处理
- 一个事件可以有多个相应, 不同于DOM0
HTML事件
<button onClick="clickHandle()" >按钮</button>
<script>
function clickHandle(){
console.log("点击按钮");
}
</script>
DOM0事件
<button id="btn">按钮</button>
<script>
var btn = document.getElementById("btn");
btn.onclick = function(){
console.log("test1");
}
</script>
DOM2事件
<button id="btn1">按钮1</button>
<button id="btn2">按钮2</button>
<script>
var btn1 = document.getElementById("btn1");
var btn2 = document.getElementById("btn2");
btn1.addEventListener("click", function(){
btn1_demo();
});
btn2.addEventListener("click", function(){
btn2_demo();
});
function btn1_demo(){
console.log("DOM2 btn1");
}
function btn2_demo(){
console.log("DOM2 btn2");
}
</script>
鼠标事件
主要的鼠标事件, 如下所示:
click
:按下鼠标时触发dblclick
:在同一个元素上双击鼠标时触发mousedown
:按下鼠标键时触发mouseup
:释放按下的鼠标键时触发mousemove
:当鼠标在节点内部移动时触发。当鼠标持续移动时,该事件会连触发。mouseenter
:鼠标进入一个节点时触发,进入子节点不会触发这个事件mouseleave
:鼠标离开一个节点时触发,离开父节点不会触发这个事件mouseover
:鼠标进入一个节点时触发,进入子节点会再一次触发这个事件mouseout
:鼠标离开一个节点时触发,离开父节点也会触发这个事件wheel
:滚动鼠标的滚轮时触发
示例
温馨提示
这些方法在使用的时候,除了DOM2级事件,都需要添加前缀
on
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){
console.log("click事件");
}
Event事件
事件发生以后,会产生一个事件对象,作为参数传给监听函数