jquery - 检测鼠标中键单击事​​件 jQuery

标签 jquery click mouseevent

我想在用户单击鼠标左键或中间按钮时显示一个 jQuery-UI 对话框作为弹出窗口。它适用于左键单击(我收到警报框,然后弹出窗口),但不适用于中间(警报框和弹出窗口都不是)。我错过了什么?

$('a.external').live('click', function(e){
  if( e.which <= 2 ) {
    e.preventDefault();
    alert ("inside if");
  }
  popUp.start(this);
});

最佳答案

使用mousedownmouseup而不是click。并且(除非您使用非常旧版本的 jQuery)使用 .on() 而不是 .live():

$(document).on("mousedown", "a.external", function(e) {
   if( e.which <= 2 ) {
      e.preventDefault();
      alert ("inside if");
   }
   popUp.start(this);
});

...理想情况下,您应该使用比 document 更接近链接的父元素。

演示:http://jsfiddle.net/7S2SQ/

关于jquery - 检测鼠标中键单击事​​件 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17130852/

相关文章:

jquery - CSS 仅在 jQuery 动画完成后渲染。如何解决这个问题?

javascript - 将与选择器相关的变量传递给多个 jQuery 事件

java - 使用 Java 检测鼠标点击屏幕上的任意位置

ios - 按钮单击事件在 iOS 中被触发两次或更多次

jquery - 错误: Shell Form does not validate

jquery点击关闭功能

javascript - Mouseover 和 Mouseout 之间的事件触发顺序

javascript - JQuery 选项卡 UI - 菜单旋转 - OnMouseOver 和 OnMouseOut

javascript - JavaScript MouseEvent 中的 e.metaKey 指的是哪个键?

javascript - 不属于特定类的 JQuery 复选框选择器