javascript - 更改鼠标键码 - jquery

标签 javascript jquery events keycode mousedown

据我所知,不同的浏览器在 mousedown 事件上为鼠标按钮分配不同的键码值。我已经尝试过this在 Chrome 中,它有效:

$('a').mousedown(function(f) {
    if (f.which == 2) {
        alert("You clicked the wheel")
    }
})​

但是,我担心某些浏览器无法识别鼠标滚轮的键码为 2,并将其与其他鼠标按钮混淆,从而导致代码崩溃。我的问题是是否有任何方法可以重置这些值,以便我可以使用我提供的新值,以便所有浏览器都知道这些数字到底代表什么。

最佳答案

根据 W3C,其值应该是:

  • 左键 - 0
  • 中间按钮 - 1
  • 右键 - 2

根据 Microsoft 的说法,其值应该是:

  • 左按钮 - 1
  • 中间按钮 - 4
  • 右键 - 2

但你不必考虑它(跨浏览器问题),将其保留在 jQuery 上,在每个浏览器都会返回相同的结果

$('a').mousedown(function(e) {
    if( (e.which == 1) ) {
        alert("left button");
    }if( (e.which == 3) ) {
        alert("right button");
    }else if( (e.which == 2) ) {
        alert("middle button"); 
    }
})​;

DEMO. (在 IE、Chrome 和 FF 中测试)

关于javascript - 更改鼠标键码 - jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11440052/

相关文章:

javascript - 附加到事件的原型(prototype)方法未定义

javascript - 在 PHP 中使用 JS OOP

javascript - 如何用字母替换下划线 React Hook

javascript - 如何在我的幻灯片中插入幻灯片指示点?

javascript - 带有响应的 CustomEvent,这可能吗?

javascript - 是否可以在 DIV 上添加事件监听器?

javascript - jQuery 对话框和 ajax 回传

jquery - 在 jquery 中我可以链接 .filter 两次吗?

Jquery UI 模态对话框在 IE6 和 IE7 中不起作用

c# - 如何在 NumericUpDown 中保留有效值而不是分配最大值?