Jquery:检测是否单击了鼠标中键或右键,如果是,请执行以下操作:

发布于 2024-09-29 13:08:47 字数 526 浏览 4 评论 0原文

查看我的 jsfiddle 演示,如果 e.which == 1 那么当你左键点击 h2 就会 e.which == 2e.which == 3 那么它就不起作用。 2 是鼠标中键,3 是鼠标右键。我也发现了这一点:

JQuery 提供了一个 e.which 属性,分别为左键、中键和右键返回 1、2、3。所以你也可以使用 if (e.which == 3) {alert("right click"); 此代码

不起作用:

代码:

    $("h2").live('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
      alert("middle button"); 
   }
});

Check out my jsfiddle demo, if e.which == 1 then when you left click the h2 it will
e.which == 2 or e.which == 3 then it wont work. 2 is the middle mouse button, and 3 is the right mouse button. i found this too:

JQuery provides an e.which attribute, returning 1, 2, 3 for left, middle, and right click respectively. So you could also use if (e.which == 3) { alert("right click"); }

This code isn't working:

code:

    $("h2").live('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
      alert("middle button"); 
   }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

听不够的曲调 2024-10-06 13:08:47

您可能想要捕获 mousedown 事件,并且还需要阻止 oncontextmenu 事件以阻止右键单击事件期间出现上下文菜单。

$("h2").live('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"); 
   }
   e.preventDefault();
}).live('contextmenu', function(e){
   e.preventDefault();
});

更新: .live()jQuery 以来已被弃用1.9。使用 .on() 代替。

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

You may want to trap the mousedown event, and you also need to prevent the oncontextmenu event to stop the context menu from coming up during the right click event.

$("h2").live('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"); 
   }
   e.preventDefault();
}).live('contextmenu', function(e){
   e.preventDefault();
});

UPDATE: .live() has been deprecated since jQuery 1.9. Use .on() instead.

$("h2").on('mousedown', function(e) { 
  if (e.which == 1) {
    alert("left button");
  } else if (e.which == 3) {
    alert("right button");
  } else if (e.which == 2) {
    alert("middle button");
  }
  e.preventDefault();
});
养猫人 2024-10-06 13:08:47

过去,我注意到除了常规左键单击之外,使用单击事件进行任何操作都会出现一些奇怪的情况。我不记得细节了,但是如果你将“click”更改为“mousedown”或“mouseup”,你应该会得到更好的结果。

I've noticed some oddities in the past with using the click event for anything but a regular left-click. I don't recall the details, but if you change "click" to "mousedown" or "mouseup" you should have better results.

命硬 2024-10-06 13:08:47

现在按钮已经被弄得面目全非。根据 W3C,其值应该是:

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

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

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

毫无疑问,Microsoft 模型比 W3C 模型更好。 0 应该表示“没有按下按钮”,其他任何内容都是不合逻辑的。

来自http://www.quirksmode.org/js/events_properties.html

Now button has been fouled up beyond all recognition. According to W3C its values should be:

  • Left button – 0
  • Middle button – 1
  • Right button – 2

According to Microsoft its values should be:

  • Left button – 1
  • Middle button – 4
  • Right button – 2

No doubt the Microsoft model is better than W3C’s. 0 should mean “no button pressed”, anything else is illogical.

From http://www.quirksmode.org/js/events_properties.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文