jquery热键和CTRL-C

时间:2013-06-26 18:25:58

标签: jquery hotkeys

我正在构建一个webapp,用户可以在其中单击表格中的任何单元格。单击时,将复制该单元格的文本,并将在fancybox中的禁用文本区域内弹出,并在js中选择textarea。然后,用户被邀请按CTRL-C以复制现在位于所选文本区域内的文本。

我想在CTRL-C发生时将两个东西组合在一起: (1)复制所选文本 (2)关闭fancybox

我可以使用jquery热键捕获CTRL-C,但是一旦我使用它来调用fancybox close方法,该事件就不再传播了。无论如何要使用两者。我的代码是:

$(document).bind('keydown', 'ctrl+c', function(event){   
    $.fancybox.close(); // if this is commented out, CTRL-C works just fine
    return true;
});

我已多次解释这个问题与其他问题有何不同。我在原始问题中表示我可以检测到击键。问题是如何检测,让行动继续,并采取另一个行动。我在下面提供了一个答案,我自己想出来了。

1 个答案:

答案 0 :(得分:4)

How to detect that Ctrl+R was pressed?

查看此解决方案
$(document).keydown(function(e) {
    if (e.keyCode == 65 && e.ctrlKey) {
        alert('ctrl A');
    }
});

编辑:

<textarea>test</textarea>
<p id="test"></p>

$(document).keydown(function(e) {
    if (e.keyCode == 67 && e.ctrlKey) {
        /* close fancybox here */

        $("#test").text("copied!"); /* optional */
    }
});