jQuery的:按键,CTRL + C(或一些像这样的组合)
我正在尝试在我制作的网站上创build快捷方式。 我知道我可以这样做:
if(e.which == 17) isCtrl=true; if(e.which == 83 && isCtrl == true) { alert('CTRL+S COMBO WAS PRESSED!') //run code for CTRL+S -- ie, save! e.preventDefault(); }
但是下面的例子是更简单,更less的代码,但它不是一个组合按键事件:
$(document).keypress("c",function() { alert("Just C was pressed.."); });
所以我想知道如果通过使用第二个例子,我可以这样做:
$(document).keypress("ctrl+c",function() { alert("Ctrl+C was pressed!!"); });
这可能吗? 我试过了,它不起作用,我做错了什么。
另一种方法(不需要插件)只需使用.ctrlKey
的事件对象的 .ctrlKey
属性即可。它指示在事件发生时是否按下了Ctrl ,如下所示:
$(document).keypress("c",function(e) { if(e.ctrlKey) alert("Ctrl+C was pressed!!"); });
我晚了一点 ,但这是我的一部分
$(document).on('keydown', function ( e ) { // You may replace `c` with whatever key you want if ((e.metaKey || e.ctrlKey) && ( String.fromCharCode(e.which).toLowerCase() === 'c') ) { console.log( "You pressed CTRL + C" ); } });
试试Jquery Hotkeys插件 – 它会做你需要的一切。
jQuery Hotkeys是一个插件,可以让你轻松地添加和删除处理程序的键盘事件在你的代码中的任何地方支持几乎任何组合键。
这个插件是基于Tzury Bar Yochay的插件:jQuery.hotkeys
语法如下:
$(expression).bind(types, keys, handler); $(expression).unbind(types, handler); $(document).bind('keydown', 'ctrl+a', fn); // eg replace '$' sign with 'EUR' // $('input.foo').bind('keyup', '$', function(){ // this.value = this.value.replace('$', 'EUR'); });
你不能使用jQuery的Ctrl + C ,但你可以使用另一个是shortcut.js的库
现场演示: Abdennour JSFiddle
$(document).ready(function() { shortcut.add("Ctrl+C", function() { $('span').html("أحسنت. لقد ضغطت على حرفي : Ctrl+C"); }); shortcut.add("Ctrl+V", function() { $('span').html("أحسنت. لقد ضغطت على حرفي : Ctrl+V"); }); shortcut.add("Ctrl+X", function() { $('span').html("أحسنت. لقد ضغطت على حرفي : Ctrl+X"); }); });
有一个名为“Hotkeys”的Jquery插件,允许您绑定到按键组合。
这是做你以后的事吗?
Jquery HotKeys – Google Code
<script src="jquery-latest.js"></script> <script type='text/javascript'> var ctrlMode = false; // if true the ctrl key is down ///this works $(document).keydown(function(e){ if(e.ctrlKey){ ctrlMode = true; }; }); $(document).keyup(function(e){ ctrlMode = false; }); </script>