使用jQuery捕获Shift和Click事件

56

我似乎不能同时捕获两个事件。我正在尝试捕获Shift和点击(鼠标点击)事件。

我可以单独捕获每个动作,但无法同时捕获两个动作。

有人对这个特定问题进行了研究吗?

5个回答

104

是的:

$(document).click(function(e) {
    if (e.shiftKey) {
        alert("shift+click")
    } 
});

24

您可以检查 event.shiftKey 布尔属性。

$(selector).click(function(event) {
    if (event.shiftKey) {
        //....
    } 
});

1
这是与上面相同的答案。它们几乎在同一时间被回答了。 - DRaehal
5
这条评论和之前的一样,它只是在陈述显而易见的事实。 - L0j1k

9
值得注意的是:
检测Ctrl键或"元"键(在OS X上为Cmd键)。
$(document).click(function(e)
    {
        if (e.ctrlKey)
        {
            alert("ctrl+click");
        }
    });

$(document).click(function(e)
    {
        if (e.metaKey)
        {
            alert("CMD+click");
        }
    });

4
如果我理解你的问题正确,你可以在你的click处理程序中使用你接收到的event对象的shiftKey属性来检查用户点击时是否按下了Shift键。 编辑:是shiftKey而不是shift

3

一个很好的处理按键事件的库是shortcut.js,可以在这里找到。它非常好用。

你甚至可以同时捕获Crtl+Shift,这正是我一直在寻找的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接