javascript - 如何创建仅在同时按下两个 'shift + left/right arrow' 键后触发的事件监听器?

标签 javascript jquery html

在下面的代码中,我遇到的问题是调用了 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 事件配合使用的方式(有 shiftKeyctrlKeyaltKeymetaKey )。

关于javascript - 如何创建仅在同时按下两个 'shift + left/right arrow' 键后触发的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989516/

相关文章:

javascript - 查询图像结果一段时间后发生变化

jQuery - iPad/iPhone - 禁用滚动后启用滚动

jquery - 无法在媒体查询中调整图像大小和居中

javascript - HandleBars - 模板中的模板

javascript - 单击按钮时图表不呈现 w/Chart.js

javascript - w3c dom 和 javascript

javascript - 如何在javascript中对数组进行统计分类?

javascript - 阵列中的 knockout 阵列

html - 如何在网站内叠加图像 (png)?

javascript - 从表单外部链接提交表单