我有以下代码,使用左右箭头键在元素之间导航。
$(document).keydown(function (event) {
if (event.keyCode === 37) {
console.log("left")
currentPosition > 0 ? currentPosition-- : maxFocusablePosition;
}
if (event.keyCode === 39) {
console.log("right")
currentPosition < maxFocusablePosition ? currentPosition++ : 0;
}
我尝试实现以下功能,但它不起作用:
if ( event.ctrlKey && ( event.which === 37 ) ) {
console.log( "Combo Move" );
}
答案 0 :(得分:0)
真的?我很惊讶因为ctrlKey
和which
为我工作!
键盘事件API is a disgrace。关于键盘事件的标准化,W3C已经拖了很长时间。这就是为什么你可能会看到很多相互矛盾的信息。
$(function() {
var input = $('input');
input.on('keydown', function(event) {
if (event.which === 37 && event.ctrlKey) {
input.val('ctrl-left');
} else if (event.which === 39 && event.ctrlKey) {
input.val('ctrl-right');
} else {
input.val('');
}
});
input.focus();
});
input { width: 100%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input placeholder="Press Ctrl-left or Ctrl-right in here">
答案 1 :(得分:-1)
使用如下的keyCode并在函数中使用。
$(document).keydown(function (event) {
var keyCode = event.keyCode || event.which;
if (keyCode === 37) {
console.log("left")
currentPosition > 0 ? currentPosition-- : maxFocusablePosition;
}
if (keyCode === 39) {
console.log("right")
currentPosition < maxFocusablePosition ? currentPosition++ : 0;
}
if ( event.ctrlKey && ( keyCode === 37 ) ) {
console.log( "Combo Move" );
}