可以通过 mousedown
和 mouseup
事件处理程序来检测鼠标单击事件,并在其中区分左键和右键的单击。
document.addEventListener('mousedown', (e) => {
// e.button === 0 or e.buttons === 1 => 鼠标左键被按下
// e.button === 1 or e.buttons === 4 => 鼠标中键被按下
// e.button === 2 or e.buttons === 2 => 鼠标右键被按下
// e.button === 3 or e.buttons === 8 => 浏览器的返回键被按下
// e.button === 4 or e.buttons === 16 => 浏览器前进键被按下
})
需要注意:
- 在某些浏览器中,
e.button
属性可能被废弃,并且可能存在兼容性问题。因此建议使用e.buttons
属性来确定鼠标按键单击事件。 - 关于浏览器兼容性问题,
event.button
在 IE 中返回的是键盘按键 ASCLL 码,且需要使用mousedown
事件。 - 在部分现代浏览器中,在触摸设备上双击事件会被触发为两个单击事件,这些事件是不能区分左键和右键的。