JavaScript 鼠标事件处理与添加方式详解
本文系统总结JavaScript中的鼠标事件,包括onclick、onmousedown等常用类型。详细对比HTML内联、DOM0级和DOM2级三种事件添加方式,重点解析DOM2级addEventListener的参数机制、冒泡控制及匿名函数移除难点。同时梳理鼠标按键值(which)、滚轮事件在不同浏览器(Chrome/Firefox)中的兼容处理及event对象属性差异。
JavaScript鼠标事件概述
JavaScript中的鼠标事件主要涵盖onclick、onmousedown、onmouseup、oncontextmenu以及ondblclick等类型。这些事件在触发时均会包含一个事件对象event。需要注意的是,在低版本Internet Explorer浏览器中,event对象并非直接挂载在事件目标上,而是挂在window对象下,这一差异将在后续讨论中详细说明。
事件绑定的三种方式
1.通过html添加事件
<input type="button" click="alert(1)"/>
2.通过DOM0级方式添加事件
<input type="button" value="点击"/>
<script>
var btn=document.getElementsByTagName('input')[0];
btn.onclick=function(){
alert(1);
}
</script>
3.通过DOM2级方式添加事件
DOM2级事件监听机制与注意事项
事件监听器主要接收三个参数:事件类型、执行函数以及是否冒泡。默认情况下,事件是允许冒泡的。
document.addEventListener('click',function( ){ },true)
上述三种方式中,DOM0级方式存在一个显著缺点:若对同一事件多次绑定,后绑定的函数会覆盖先前的函数。相比之下,通过DOM2级方式添加的相同事件不会相互覆盖。此外,通过DOM2级添加的事件类型名称前不包含“on”前缀。关于事件移除,DOM0级只需将事件属性设为null即可清除;但若使用DOM2级添加的是匿名函数,则无法通过removeEventListener()移除,因为两者指向不同的函数引用。因此,若需移除DOM2级事件,务必使用有名函数。最后一个参数为true时代表冒泡阶段,为false时代表捕获阶段。
鼠标事件对象属性与浏览器兼容性
/* * 当触发onclick事件时,console.log(ev.which),鼠标左键的which值为1 * 当触发oncontextmenue时,鼠标的右键值为3,不会触发onclick事件 * 当mousewheel时,鼠标的中键键值为0 * 当document.down时,可以根据按键的不同,从左到右鼠标键值依次为1,2,3 * 在chrome底下,查看ev.wheelDelta,向上是120,向下是-120 * 在FirFox底下,通过addEventListenner()来给鼠标添加滚轮事件,事件类型是DOMMouseScroll,查看是使用ev.detail * 向上是3,向下是-3 *
以上这篇关于js中的鼠标事件总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
D3.js 处理大规模数据点的性能优化策略
2026-11-05 15:37:25
JS实现网页摄像头实时扫码:结合getUserMedia与jsQR教程
2026-11-05 15:27:28
D3.js v5 迁移到 v7 的 API 变更与注意事项
2026-11-05 11:57:17
使用 animate.js 实现多元素协同的序列动画
2026-11-04 22:27:53
JS拖拽排序时怎么添加平滑动画效果?FLIP技术实战
2026-11-04 10:12:22
