Jquery箭头键导航

我有像自动提示这样的Facebook的文本字段和下拉菜单
<input type="text" id="search" name="search_fld"/>

<div id="display">
<div class="display_Box">Luca</div>
<div class="display_Box">David</div>
<div class="display_Box">Mark</div>
<div class="display_Box">...</div>
</div>

我的CSS:

.display_Box:hover
{
  background:#3b5998;
  color:#FFFFFF;
}

如何通过向下箭头键将“悬停”状态从我的输入“search_fld”传递到第一个“display_Box”,依此类推所有“display”div?

这是一个link the jsfiddle code.

解决方法

您无法完美地模拟悬停状态..添加具有相同样式的“真实”类无法逃脱:
.display_Box_hover,.display_Box:hover
{
  background:#3b5998;
  color:#FFFFFF;
}

现在这段代码将“导航”元素:

window.displayBoxIndex = -1;

$("#search").keyup(function(e) 
{
        if (e.keyCode == 40) 
        {  
            Navigate(1);
        }
        if(e.keyCode==38)
        {
            Navigate(-1);
        }

});

var Navigate = function(diff) {
    displayBoxIndex += diff;
    var oBoxCollection = $(".display_Box");
    if (displayBoxIndex >= oBoxCollection.length)
         displayBoxIndex = 0;
    if (displayBoxIndex < 0)
         displayBoxIndex = oBoxCollection.length - 1;
    var cssClass = "display_Box_hover";
    oBoxCollection.removeClass(cssClass).eq(displayBoxIndex).addClass(cssClass);
}

这将“记住”最后一个“selected”元素的索引并切换到next或prevIoUs元素,使用eq()函数并将上面的类添加到所选元素.

Updated jsFiddle.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...