3

我正在尝试为右键单击事件添加一些行为。奇怪的是,我根本无法使事件处理工作。

这是 jQuery 代码:

$('body').on('click', '#wrapper', null, function(ev){
    if (ev.which === 2 || ev.which === 3){
        alert("Here!");
    }
});

我认为该事件已被触发,但无法识别为“右键单击”。永远不会显示警报消息。我究竟做错了什么?谢谢!

LE:我可以用 来识别左击事件ev.which === 1。所以那里没有问题。

4

3 回答 3

2

而不是click使用mousedown

$('body').on('mousedown', '#wrapper', null, function(ev){
    if (ev.which === 2 || ev.which === 3){
        alert("Here!");
    }
});​
于 2012-05-10T09:24:52.150 回答
1

使用 javascript 你可以试试这个

document.onmousedown = ListenMouseClick
document.onmouseup = ListenMouseClick

function ListenMouseClick() 
{
if (window.event.button==2 )
    {
        alert('right click')
    }
}
于 2012-05-10T09:27:11.370 回答
1

轻松使用三元运算符和 ' mousedown' 或 ' contextmenu'

http://jsfiddle.net/49Ldy/

$('body').on('mousedown','#wrapper',function(ev){
   var evt = ev.which === 3 ? alert('rightClick') : alert('someOtherButton');
});

或者:

$('body').on('mousedown','#wrapper',function(ev){
    var evt = ev.which === 3 ? alert('rightClick') : (ev.which === 2 ? alert('auxClick') : alert('someOtherButton'));
});

或者:

$('body').on('contextmenu','#wrapper',function(){
    alert('rightClick');
    return false;
});
于 2012-05-10T09:27:57.673 回答