无法使用jquery的click事件处理程序来检测右键单击

jby*_*yrd 6 javascript jquery right-click event-handling

在尝试使用jquery检测到鼠标右键时,我注意到点击事件处理程序似乎没有通过鼠标右键单击触发,而mousedown或mouseup事件处理程序则执行此操作.

例如,右键单击测试div后,以下警报"测试!":

$('#test').mousedown(function(e) {
    alert('testing');
});
Run Code Online (Sandbox Code Playgroud)

但是,以下内容不是:

$('#test').click(function(e) {
    alert('testing!');
});
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么?

wes*_*bos 12

当你mousedown,甚至被解雇了 event.which

取自这里:如何用jQuery区分鼠标左键和右键

$('#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');
    }
});
Run Code Online (Sandbox Code Playgroud)

因此,不要使用.click(),而是使用mousedown并检查案例.


hta*_*ata 8

正如本文所说:

任何浏览器中没有右键单击的点击事件.

所以你mousedownmouseup大多数浏览器一样.

  • 啊哈,这很有意义,谢谢你的文章.所以另一种说法是:***鼠标右击不会触发点击事件***(只有mousedown和mouseup事件). (3认同)