Вы не можете идеально эмулировать состояние при наведении. Не исключено добавление «реального» класса с тем же стилем:
.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);
}
Это «запомнит» индекс последнего «выбранного» элемента и переключится на следующий или предыдущий элемент, используя функцию eq()
и добавив класс сверху к этому выбранному элементу.
Обновлен jsFiddle .