javascript - 如何在鼠标滚动和右键单击上添加事件?

标签 javascript jquery html

尝试创建一个扫雷游戏,右键单击会添加一个标志。但是,右键单击事件目前不起作用,即无法获取鼠标右键和鼠标中键的 event.which 的值。只需获取 contextMenu

示例 JS:

var trig = function (event) {
  if(event.which==1){
    //do something on left click
  }
  else if(event.which === 3)
  {
    event.preventDefault();
    console.log(event.isDefaultPrevented());
    //Do something on right click.
  }
}

$('.block').click(trig);

谁能告诉我发生这种情况的合理原因?

preventDefault 只是在 conextmenu 变得烦人时添加的。

最佳答案

MouseEvent.button

0 表示鼠标左键,1 表示滚轮按钮或中间按钮(如果存在)和 2 代表鼠标右键。

Internet Explorer 8 及更早版本具有不同的值:

1 鼠标左键,2 鼠标右键和 4 用于滚轮按钮或中间按钮(如果存在)。

改变

else if(event.which === 3)

else if(event.which === 2 || event.which === 3)

或:对于 IE <= 8

else if(event.which === 2 || event.which === 4)

关于javascript - 如何在鼠标滚动和右键单击上添加事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52753164/

相关文章:

javascript - 农业网格企业与 react

javascript - 需要值(减去值)来影响另一个输入的值

Javascript 数字格式问题

html - 如何计算移动浏览器的div的高度

javascript - 基于 HTML 下拉选择填充输入

javascript - 点击模态确定按钮时,按模态使用次数触发点击,无需刷新页面

javascript - 将常规文本输入转换为 DD/MM/YYYY 格式

javascript - 防止jquery原型(prototype)/插件方法之间的冲突

jquery - 使用 jquery 的简单登录表单

jQuery 通过自定义属性获取元素