如何使用纯JavaScript区分所有浏览器中的左/右/中间点击事件?

时间:2015-04-08 09:46:33

标签: javascript

(我知道已经有类似的问题了,但是我找不到非jQuery并覆盖所有浏览器。)

我需要一个获取JavaScript点击事件的函数,并返回1进行左键单击,2进行中间点击,3进行右键单击。

是的,这是event.which应该是的,但并非所有浏览器都支持它,所以你必须使用event.button ...但是有些浏览器会对该属性进行不同的编号。我发现很难弄清楚如何做到这一点。

我想要的东西适用于所有浏览器,包括IE6 +(请不要质疑),Firefox 3.6 +,Chrome 10 +,Safari 5 +。

请不要jQuery。

1 个答案:

答案 0 :(得分:0)

您可以查看链接Mouse events,这提供了一个很好的解释。 您可以使用其中提供的代码作为解决方法。

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
    }
}

希望这有帮助。