Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带键盘导航的Javascript下拉菜单_Javascript_Html_Css - Fatal编程技术网

带键盘导航的Javascript下拉菜单

带键盘导航的Javascript下拉菜单,javascript,html,css,Javascript,Html,Css,仅使用JS就可以完成箭头键导航吗 不是像superfish这样的第三方。是的,这里有一个框架: document.onkeydown = function(evt) { evt = evt || window.event; if (evt.keyCode == 37) { //do something } else if (evt.keyCode == 38) { //do something }

仅使用JS就可以完成箭头键导航吗


不是像superfish这样的第三方。是的,这里有一个框架:

document.onkeydown = function(evt) 
{
    evt = evt || window.event;
    if (evt.keyCode == 37) 
    {
        //do something
    }
    else if (evt.keyCode == 38) 
    {
        //do something
    }
    else if (evt.keyCode == 39) 
    {
        //do something
    }
    else if (evt.keyCode == 40) 
    {
        //do something
    }
};  

您可能会侥幸逃脱:

document.onkeypress = keyHandler;

function keyHandler(evt)
{
    var evt  = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);

    if (evt.keyCode == 37 /*left arrow*/) {
        //...
    }
    if (evt.keyCode == 38 /*up arrow*/) {
        //...
    }
    if (evt.keyCode == 39 /*right arrow*/) {
        //...
    }
    if (evt.keyCode == 40 /*down arrow*/) {
        //...
    }
}

当然,也有一些…

检查一下,它给出了如何检测箭头键按键的示例。啊,这些怪癖是一个杀手。我曾经认为可以用JavaScript构建自己的文本框,但当我在Opera中看到这一点时,你无法区分,比如说,
Delete
…我如何上下移动指向所选列表项的指针?