如何区分jQuery的左右鼠标点击

你如何获得使用jQuery点击鼠标按钮?

$('div').bind('click', function(){
    alert('clicked');
});

这是由右键和左键触发的,能够捕捉鼠标右键点击的方式是什么? 如果像下面这样存在,我会很开心:

$('div').bind('rightclick', function(){ 
    alert('right mouse button is pressed');
});

随着jQuery的版本1.1.3, event.which标准化event.keyCodeevent.charCode ,所以你不必担心浏览器的兼容性问题。 关于event.which文档

event.which将分别为左,中,右鼠标按钮分别输出1,2或3,如下所示:

$('#element').mousedown(function(event) {
    switch (event.which) {
        case 1:
            alert('Left Mouse button pressed.');
            break;
        case 2:
            alert('Middle Mouse button pressed.');
            break;
        case 3:
            alert('Right Mouse button pressed.');
            break;
        default:
            alert('You have a strange Mouse!');
    }
});

编辑 :我改变它在jQuery 1.7或更高版本中使用.on()动态添加元素:

$(document).on("contextmenu", ".element", function(e){
   alert('Context Menu event has fired!');
   return false;
});

演示:jsfiddle.net/Kn9s7/5

[原始帖子的开头]这是对我有用的东西:

$('.element').bind("contextmenu",function(e){
   alert('Context Menu event has fired!');
   return false;
}); 

如果你有多种解决方案^^

编辑 :Tim Down提出了一个很好的观点,即并不总是会触发contextmenu事件的right-click ,而且当按下上下文菜单键时(这可以替代right-click


你可以很容易地分辨哪一个鼠标按键被检查按下which鼠标事件的事件对象的属性:

/*
  1 = Left   mouse button
  2 = Centre mouse button
  3 = Right  mouse button
*/

$([selector]).mousedown(function(e) {
    if (e.which === 3) {
        /* Right mouse button was clicked! */
    }
});
链接地址: http://www.djcxy.com/p/80919.html

上一篇: How to distinguish between left and right mouse click with jQuery

下一篇: jquery.extend(true, [], obj) not creating a deep copy