使用javaScript捕获按键事件

时间:2013-10-24 10:25:48

标签: javascript

在下面的示例中,按下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 
       }
    });
});

1 个答案:

答案 0 :(得分:0)

在你的第二个if上,你只是检查换档键,而不是换档和按下键。你需要把你的第二个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 or JavaScript: How determine if shift key being pressed while clicking anchor tag hyperlink?