我正在构建一个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;
});
我已多次解释这个问题与其他问题有何不同。我在原始问题中表示我可以检测到击键。问题是如何检测,让行动继续,并采取另一个行动。我在下面提供了一个答案,我自己想出来了。
答案 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 */
}
});