指针事件中如何检测左键或右键的方法

4
我已经通过pointerevents-polyfill配置了指针事件。然而,我有一个问题,无法区分左右点击,右键单击导航项将执行与左键单击相同的操作,而不是打开右键单击菜单。

我使用的特定事件是pointerup。是否有办法使用Pointer Events检查事件是左键还是右键单击?
3个回答

7

看起来有一个名为button的属性,如果它是主要指针(左键),则其值为0。

我没有使用过这个库,但从查看源代码和W3C规范来看,似乎是这样的。

您可以随时打印/调试事件并查看属性是什么。


4

我使用了 event.type == 'click'(左侧)和 event.type == 'contextmenu'(右侧)。


3
以下代码可识别“主按钮”类型的指针事件,例如左键单击、触摸。
if(e.pointerType !== 'mouse' || e.button === 0){
    //Not mouse pointer or mouse pointer with left button
}

https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent/button

  • 0:主鼠标按钮,通常是左键或未初始化的状态
  • 1:辅助鼠标按钮,通常是滚轮按钮或中间按钮(如果有)
  • 2:次要鼠标按钮,通常是右键
  • 3:第四个按钮,通常是浏览器的“后退”按钮
  • 4:第五个按钮,通常是浏览器的“前进”按钮

为什么 button === 0 - Kevin Ghadyani
1
请提供更多支持您答案的信息。 - Michael M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接