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

看看我的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"); } }); 

您可能想要捕获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(); }); 

我注意到过去使用点击事件除了常规左键单击之外的一些奇怪之处。 我不记得细节,但如果你将“点击”改为“mousedown”或“mouseup”,你应该有更好的结果。

现在button已被犯规超出所有认可。 根据W3C,它的价值应该是:

  • 左键 – 0
  • 中键 – 1
  • 右键 – 2

据微软称,它的价值应该是:

  • 左键 – 1
  • 中键 – 4
  • 右键 – 2

毫无疑问,微软的模式比W3C更好。 0应该表示“没有按下按钮”,其他任何东西都是不合逻辑的。

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