可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Using one of the examples from a previous question I have:
$(window).keypress(function(event) { if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true; $("form input[name=save]").click(); event.preventDefault(); return false; });
Is it also possible to change this to work for the Mac cmd key?
I have tried (!(event.which == 115 && (event.cmdKey || event.ctrlKey)) && !(event.which == 19))
but this didn't work.
回答1:
Use the event.metaKey to detect the Command key
$(document).keypress(function(event) { if (event.which == 115 && (event.ctrlKey||event.metaKey)|| (event.which == 19)) { event.preventDefault(); // do stuff return false; } return true; });
回答2:
For detecting ctrl+s
and cmd+s
, you can use this way:
Working jsFiddle.
jQuery:
var isCtrl = false; $(document).keyup(function (e) { if(e.which == 17) isCtrl=false; }).keydown(function (e) { if(e.which == 17) isCtrl=true; if(e.which == 83 && isCtrl == true) { alert('you pressed ctrl+s'); return false; } });
source (includes all keyboard shorcuts and buttons)
回答3:
This works for me:
$(document).keypress(function(event) { if ((event.which == 115 || event.which == 83) && (event.ctrlKey||event.metaKey)|| (event.which == 19)) { event.preventDefault(); // do stuff return false; } return true; });