如何使用纯 JavaScript 在所有浏览器中区分左/右/中键单击事件
How to distinguish left/right/middle click events in all browsers, with plain JavaScript?
(我知道已经有类似的问题了,但我找不到一个非jQuery并且涵盖所有浏览器的问题。
我需要一个函数,它接受一个 JavaScript 单击事件并返回左键单击的 1
,2
返回中键单击,3
返回右键单击。
是的,这就是event.which
应该的样子,但并非所有浏览器都支持它,因此您必须使用event.button
......但是,某些浏览器对该属性的编号方式不同。我发现很难弄清楚如何做到这一点。
我想要适用于所有浏览器的东西,包括IE6+(请不要质疑这一点(,Firefox 3.6 +,Chrome 10 +,Safari 5+。
请不要使用jQuery。
您可以查看链接鼠标事件,这是一个很好的解释。您可以使用其中提供的代码作为解决方法。
function fixWhich(e) {
if (!e.which && e.button) {
if (e.button & 1) e.which = 1 // Left
else if (e.button & 4) e.which = 2 // Middle
else if (e.button & 2) e.which = 3 // Right
}
}
希望这有帮助。
相关文章:
- 如何使用2个事件单击1个日历
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 如何禁用地图上的所有鼠标事件(单击、悬停等)
- Fullcalendar将图标添加到事件而不触发事件单击
- 在将JQuery对象添加到DOM之前,请将事件单击到JQuery对象
- 如何模拟拖动事件(单击鼠标移动按钮)
- 如果可编辑为 false,则全日历事件单击处理程序不起作用
- onclick事件单击时未添加类
- 事件单击Kml Placemark
- 事件单击时没有运行数据库
- 在事件单击函数中添加href url
- 创建元素和事件(单击)