在下面的代码中,我遇到的问题是调用了 focusPosition 函数,但控制台没有记录所需的字符串:("shift + left/right arrow"
)
// Hold reference to the currently focused position
var currentPosition = 0;
// Maximum position we can navigate to is the last item in the summary list
var maxFocusablePosition = summaryList.length - 1;
// Utility function to focus a given position value
function focusPosition(position) {
console.log("focus position is called");
$('#' + summaryList[position]).focus();
};
// Focus the first one by default
focusPosition(currentPosition);
$(document).keydown(function (event) {
if (event.which === 37 && event.which === 16) {
currentPosition = (currentPosition > 0) ? parseInt(currentPosition) - 1 : maxFocusablePosition;
console.log(' shift + left');
}
if (event.which === 39 && event.which === 16) {
currentPosition = (currentPosition < maxFocusablePosition) ? parseInt(currentPosition) + 1 : 0;
console.log('shift + right');
}
focusPosition(currentPosition);
});
最佳答案
在which
中查找箭头键,并查找event.shiftKey
是否为真,以了解shift键是否按下。这就是修饰键与 keydown
事件配合使用的方式(有 shiftKey
、ctrlKey
、altKey
和 metaKey
)。
关于javascript - 如何创建仅在同时按下两个 'shift + left/right arrow' 键后触发的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989516/