1

我制作了一个搜索功能,您可以在其中使用键盘箭头浏览结果。所有结果都将显示在li's 内的divwith 样式中:

overflow:auto; max-height: 100px;

我首先关注li这段代码:

$('#searchInput').keydown(function(e) {
    if (e.keyCode==40) {
        $('li:first').focus();
    }
});

然后divwithoverflow:auto将自动滚动,因此第一个焦点li将不可见......

这是一个例子:http: //jsfiddle.net/CZz9n/1/

4

1 回答 1

4

向下滚动来自将向下箭头解释为向下滚动命令的浏览器默认行为。要解决此问题,您只需要阻止默认行为。

您已经在s 的keydown处理程序中阻止了默认行为li,这正是我们所需要的。你用过return false,但e.preventDefault()安全一点

$('#searchInput').keydown(function(e) {
    if (e.keyCode==40) {
        e.preventDefault(); // add this
        $('li:first').focus();
    }
});

jsFiddle

于 2013-08-15T14:46:25.633 回答