Jquery:检测是否单击了鼠标中键或右键,如果是,请执行以下操作:
查看我的 jsfiddle 演示,如果 e.which == 1
那么当你左键点击 h2 就会 e.which == 2
或 e.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 wille.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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可能想要捕获 mousedown 事件,并且还需要阻止 oncontextmenu 事件以阻止右键单击事件期间出现上下文菜单。
更新: .live() 自 jQuery 以来已被弃用1.9。使用 .on() 代替。
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.
UPDATE: .live() has been deprecated since jQuery 1.9. Use .on() instead.
过去,我注意到除了常规左键单击之外,使用单击事件进行任何操作都会出现一些奇怪的情况。我不记得细节了,但是如果你将“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.
来自http://www.quirksmode.org/js/events_properties.html
From http://www.quirksmode.org/js/events_properties.html