Javascript jquery导航&x2B;突出显示<;李>;按键上的项目。按下代码

Javascript jquery导航&x2B;突出显示<;李>;按键上的项目。按下代码,javascript,jquery,css,jquery-plugins,user-interface,Javascript,Jquery,Css,Jquery Plugins,User Interface,您好,我计划制作一个ul li列表,并使其可导航,突出显示项 因此,从: <ul> <li> <a class="a">hey</a> </li> <li> <a class="a">hey you!</a> </li> <li> <a class="a">hey what's up?</a> </li> <li> <a c

您好,我计划制作一个ul li列表,并使其可导航,突出显示
  • 因此,从:

    <ul>
    <li>
    <a class="a">hey</a>
    </li>
    <li>
    <a class="a">hey you!</a>
    </li>
    <li>
    <a class="a">hey what's up?</a>
    </li>
    <li>
    <a class="a">hey hey</a>
    </li>
    </ul>
    
    • 嘿,你!
    • 嘿,怎么了?
    • 嘿嘿
    我希望以这种方式浏览
  • 项目:

  • 用户单击“向下”键(如自动完成列表),然后输入
    • 用户单击左/右键,突出显示+1或-1
    • 用户单击向上键并退出
      • 有人能帮我做这件事吗


        OHOHO:)我刚刚创建了一个完美的例子:看看stackoverflow标签输入自动完成列表:)(这和我想为我的ul项目做的事情是一样的:)

        不确定你到底想在哪里收听
        按键事件,但这适用于整个
        文档:

        $(document).bind("keydown", function (e) {
            var $prev, $next, $current = $("ul li.highlight");
        
            if (e.which === 40 && !$current.length) {
                $("ul li:first").addClass("highlight");
            } else if (e.which === 39) {
                $next = $current.next("li");
                if ($next.length) {
                    $current.removeClass("highlight");
                    $next.addClass("highlight");
                }
        
            } else if (e.which === 37) {
                $prev = $current.prev("li");
                if ($prev.length) {
                    $current.removeClass("highlight");
                    $prev.addClass("highlight");
                }
            } else if (e.which === 38) {
                $("ul li").removeClass("highlight");
            }
        });
        

        示例:

        给您:

        很好,只需选中此项:首先单击key.down,然后单击key.left或key.right,然后再次单击key.down:P@Ispuk当前位置我不确定在这种情况下您希望发生什么。怎么办?明天我会接受正确的答案,因为现在maxedison的更好,因为你的小错误,如果修复了,我更喜欢你的版本,因为代码行更少,真的谢谢!你没看到有两个突出显示的
      • Pfirs单击down首先突出显示
      • ,然后key.down将不起作用:)我选择了您的版本,只需在所有浏览器上检查即可