0

在下面的示例中,按下 Shift 键时会调用 searchForward,
但按下 Shift + Tab 键时不会调用 searchBackward。 请建议。

$(document).ready(function() {

    $('textarea').live('keydown', function(e) {
      // var keyCode = e.keyCode || e.which;
        if (e.which == 9 ) {    
        var currentIndex = getCaret($(e.target).get(0))
        searchForward($(e.target), currentIndex);
        return false
        } 
        if (e.shiftkey) {
         var currentIndex = getCaret($(e.target).get(0))
        searchBackward($(e.target), currentIndex);
        return false 
       }
    });
});
4

1 回答 1

0

在你的第二个if,你只检查 shift 键,而不是 shift 和按下的键。你需要把你的第二个 if 循环放在第一个里面。另外,我相信你的意思是shiftKey,不是shiftkey。JavaScript 区分大小写。看看更新的代码片段(也将重复的代码移到了if):JSFiddle

$(document).ready(function() {
    $('textarea').live('keydown', function(e) {
        var currentIndex = getCaret($(e.target).get(0))
        if (e.which == 9 ) {
            if (e.shiftKey) {
                searchBackward($(e.target), currentIndex);
            } else {
                searchForward($(e.target), currentIndex);
            }
            return false
        }
    });
});

另请参阅JQuery 或 JavaScript:如何确定单击锚标记超链接时是否按下了 shift 键?

于 2013-10-24T10:51:22.410 回答