Jquery 如何检测CTRL+;用西里尔字母布局的javascript中的V?
我通过以下方式检测按键事件中的Jquery 如何检测CTRL+;用西里尔字母布局的javascript中的V?,jquery,keyboard-shortcuts,Jquery,Keyboard Shortcuts,我通过以下方式检测按键事件中的ctrl+v: .keydown(function(e){ if ( e.ctrlKey && e.keyCode == 86 ) { console.log ('ctrl+v!'); } }); 当我的布局是拉丁语(英语)时,它工作得很好。但当我将布局切换到俄语(西里尔文)时,会执行ctrl+v(插入文本),但jQuery检测不起作用。(e.keyCode=0西里尔文符号) 另外,我需要它井然有序(用于预格式化插入的文本)
ctrl+v
:
.keydown(function(e){
if ( e.ctrlKey && e.keyCode == 86 ) {
console.log ('ctrl+v!');
}
});
当我的布局是拉丁语(英语)时,它工作得很好。但当我将布局切换到俄语(西里尔文)时,会执行ctrl+v
(插入文本),但jQuery检测不起作用。(e.keyCode=0
西里尔文符号)
另外,我需要它井然有序(用于预格式化插入的文本)
p.p.S.我的任务在没有检测到粘贴的情况下完成了。(对我来说,只听keyup事件就足够了),但这个问题存在于我的电脑上(Ubuntu,Fx6)。西里尔字母的键码被识别为0,你无法检测到带有拉丁字母的快捷方式(
ctrl+c
,ctrl+v
,等等)。这也适用于我的ubuntu(FF 5):
用于ctrl+n
if ( e.ctrlKey && (e.which == 110 || e.which==78) )
对于ctrl+t:
if ( e.ctrlKey && (e.which == 84 || e.which==116) )
类似于jQuery(document.bind('paste',function(e){alert('pasting!')})的东西可以工作吗?我不知道你说的“井井有条”是什么意思。奇怪的是,你的代码对我来说也适用于俄语kb布局。您在什么环境下工作?@Dr.Molle,我正在使用Ubuntu和Firefox 6。@ipr101,是的,我在谷歌上搜索并找到了
.bind('paste')
,tnx。(虽然我不再需要它了)。但如果需要检测ctrl+t
或ctrl+n
…Yeap。对我来说,它只适用于.keypress和e.which(拉丁语和西里尔语)。使用keyup或e.keyCode时,只能使用拉丁语:(感谢来自jQuery网站的消息-这可能解释了为什么一个可以使用而另一个不能使用:注意,keydown和keyup提供了一个代码,指示按下了哪个键,而keypress指示输入了哪个字符。例如,小写的“a”将由keydown和keyup报告为65,但由keypress报告为97。大写“A”将由所有事件报告为65。由于这一区别,在捕捉特殊击键(如箭头键)时,.keydown()或.keyup()是更好的选择。
if ( e.ctrlKey && (e.which == 84 || e.which==116) )