浏览器JavaScript mousedown事件:检测鼠标右键:我看看"按钮"或"哪个"?

时间:2016-07-16 00:12:51

标签: javascript html5 web

在(好的?)过去,jQuery分别为左,中,右鼠标按钮将which标准化为1,2和3。

MDN page表示button是标准的,产生的值为0,1和2.

在桌面设备上,Chrome,Safari,Firefox,IE11和Edge都同时提供buttonwhich,因此任何一个都可以使用。

(我正在编写原始JS。没有JS库依赖项。我正在使用mousedown监听element.addEventListener()

我们想要继续使用哪一个?

2 个答案:

答案 0 :(得分:1)

  

我们想要继续使用哪一个?

嗯,规范告诉了button属性,但是which

所以这应该回答这个问题,但是你可以使用which,只要浏览器支持它独立于W3C规范。

斯科特表示bitmap为1,2,4

这也是buttons

下的当前规范
  

触发鼠标事件时按下按钮:左键= 1,右键= 2,中键(滚轮)键= 4,第四键(通常为"浏览器返回"键)= 8 ,第5个按钮(通常,"浏览器转发"按钮)= 16。如果按下两个或更多按钮,则返回值的逻辑和。例如,如果按下左键和右键,则返回3(= 1 | 2)。

对于一些具有多种手势类型的绘图应用程序可能很有趣..

答案 1 :(得分:0)

继续使用零基础。

0 - left mouse button
1 - middle mouse button
2 - right mouse button

较旧的浏览器(IE 8及以下版本,希望您不必支持它们)是:

1 - left
4 - middle
2 - right

一些示例代码,用于测试。

<script>
        var clickTest = document.getElementById('clickTest');
        clickTest.addEventListener('mousedown', clickHandler);

        function clickHandler(event) {
            alert(event.button);
        }
</script>

<p id="clickTest">This is a test</p>