and*_*ick 51 jquery keypress keydown jquery-events
我正在尝试在我正在制作的网站上创建快捷方式.我知道我可以这样做:
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();
}
Run Code Online (Sandbox Code Playgroud)
但下面的示例更容易,代码更少,但它不是组合键按压事件:
$(document).keypress("c",function() {
alert("Just C was pressed..");
});
Run Code Online (Sandbox Code Playgroud)
所以我想知道如果通过使用第二个例子,我可以做类似的事情:
$(document).keypress("ctrl+c",function() {
alert("Ctrl+C was pressed!!");
});
Run Code Online (Sandbox Code Playgroud)
这可能吗?我试过了它并没有用,我做错了什么.
Nic*_*ver 75
另一种方法(不需要插件)它只使用传入.ctrlKey
的事件对象的属性.它表示Ctrl在事件发生时是否按下了,如下所示:
$(document).keypress("c",function(e) {
if(e.ctrlKey)
alert("Ctrl+C was pressed!!");
});
Run Code Online (Sandbox Code Playgroud)
Kam*_*med 41
我有点迟到了,但这是我的一部分
$(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" );
}
});
Run Code Online (Sandbox Code Playgroud)
试试Jquery Hotkeys插件 - 它会完成你需要的一切.
jQuery Hotkeys是一个插件,可让您轻松添加和删除代码中任何位置的键盘事件处理程序,几乎支持任何组合键.
这个插件基于Tzury Bar Yochay的插件:jQuery.hotkeys
语法如下:
$(expression).bind(types, keys, handler); $(expression).unbind(types, handler);
$(document).bind('keydown', 'ctrl+a', fn);
// e.g. replace '$' sign with 'EUR'
// $('input.foo').bind('keyup', '$', function(){
// this.value = this.value.replace('$', 'EUR'); });
Run Code Online (Sandbox Code Playgroud)
小智 6
我无法让它与 .keypress() 一起使用,但它可以与 .keydown() 函数一起使用,如下所示:
$(document).keydown(function(e) {
if(e.key == "c" && e.ctrlKey) {
console.log('ctrl+c was pressed');
}
});
Run Code Online (Sandbox Code Playgroud)
您不能通过jQuery 使用Ctrl+ C,但是可以与另一个快捷方式为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");
});
});
Run Code Online (Sandbox Code Playgroud)