我有一个文本输入,我需要在执行 CTRL-V 时绑定(bind)一个事件。我设置了一个名为 ctrl
的全局变量每当 keydown
时设置为 1被 which
解雇值为 17。类似地,当 keyup
时,它变为 0。被 which
解雇值(value) 17
问题是,有两个 CTRL 键。因此,如果我执行以下操作:首先按下左 CTRL 键,同时按下它,同时按下右 CTRL 键(以便现在按下两个 CTRL 键),然后我只释放其中一个,keyup
被触发并且变量 ctrl
设置为 0,即使仍在按下另一个 CTRL 键。
我如何触发事件,以便仅当两个 CTRL 键都打开时才将变量设置为 0(我不需要完全区分它们)。
最佳答案
Update : this is now possible in modern browsers
在Javascript中检测左右控制键的最简单方法
$(document).ready(function(){
$("html").keydown(function(e) {
if (e.ctrlKey) {
if (event.location == 1) console.log('left ctrl');
if (event.location == 2) console.log('right ctrl');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
注意:当您运行代码片段以激活键盘键时,您必须单击内部空白。这是在 Chrome 和 Safari 中测试的。
关于javascript - 检测Javascript中的左右控制键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173533/