深入理解DOM事件类型系列第一篇——鼠标事件

鼠标事件是web开发中最常用的一类事件,毕竟鼠标是最主要的定位设备。本文将详细介绍鼠标事件的内容

类型

鼠标事件共10类,包括click、contextmenu、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter和mouseleave

click         当用户按下并释放鼠标按键或其他方式“激活”元素时触发
contextmenu   可以取消的事件,当上下文菜单即将出现时触发。当前浏览器在鼠标右击时显示上下文菜单
dblclick      当用户双击鼠标时触发
mousedown     当用户按下鼠标按键时触发
mouseup       当用户释放鼠标按键时触发
mousemove     当用户移动鼠标时触发
mouseover     当鼠标进入元素时触发。relatedTarget(在IE中是fromElement)指的是鼠标来自的元素
mouseout      当鼠标离开元素时触发。relatedTarget(在IE中是toElement)指的是鼠标要去往的元素
mouseenter    类似mouseover,但不冒泡。IE将其引入,HTML5将其标准化,但尚未广泛实现
mouseleave    类似mouseout,但不冒泡。IE将其引入,HTML5将其标准化,但尚未广泛实现

冒泡

页面上的所有元素都支持鼠标事件,除了mouseenter和mouseleave事件外,所有的鼠标事件都会冒泡

[注意]safari浏览器不支持mouseenter和mouseleave事件

<button id="test" style="height: 30px;width: 200px;"></button>
<script>
//鼠标移入移出按钮时,显示false,表示不冒泡
test.onmouseenter = test.onmouseleave =function(e){
    test.innerHTML += e.bubbles;//false
</script>