6

我建立了一个自动提示,并且键码可以在列表中上下导航,但它会滚动窗口。我已经尝试过 event.preventDefault() 但它并没有停止它。有任何想法吗?这是我尝试过的:

$(document).keyup(function(e) {
e.returnValue=false;
e.preventDefault();
switch(e.keyCode) {
    case 40:
        suggestionLine++;
                $('#suggestionLine_'+suggestionLine).focus();
                break;
// etc...

谢谢!

4

1 回答 1

12

你需要keydown,不是keyup

为什么?当您按下该键时,您试图阻止的默认操作会立即发生(立即尝试!)。这允许诸如自动重复之类的事情,它将keydown在发送单个事件之前发送多个keyup事件。到时间keyup被触发时,滚动已经发生。

于 2013-01-30T20:01:27.377 回答