2

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

当 CTRL-C 发生时,我想将两件事结合在一起:(1)复制选定的文本(2)关闭花式框

我可以使用 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;
});

我已经多次解释过这个问题与其他问题有何不同。我在最初的问题中指出我可以检测到击键。问题是如何检测到这一点,让动作继续进行并采取另一项动作。我在下面提供了一个答案,这是我自己想出来的。

4

1 回答 1

4

从如何检测 Ctrl+R 被按下看这个解决方案?

$(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 */
    }
});
于 2013-06-26T18:30:20.903 回答