你怎么能创建一个事件监听器,只有在同时按下'shift + left / right arrow'键后才能触发?

时间:2016-03-14 13:57:16

标签: 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); 
});

1 个答案:

答案 0 :(得分:4)

which中查找箭头键,并查找event.shiftKey是否真实,以了解shift键是否已关闭。这就是修饰符键如何与keydown事件一起使用(shiftKeyctrlKeyaltKeymetaKey。< / p>