Вы имеете в виду опции автозаполнения, появляющиеся под вашим вводом текста?В этом случае вы хотите установить опцию для нажатия клавиш, и если это стрелка вниз, вы делаете то же самое, что вы в настоящее время делаете с «mouse_out» для элемента $ (this) и «mouse_over» для элемента под ним.Что касается стрелки вверх, то же самое с той, что над ней.
Сначала вам понадобятся идентификаторы для каждого div и сделайте их последовательными.Затем вы добавляете функции для нажатий клавиш
for(i=0; i < str.length - 1; i++) {
//Build our element string. This is cleaner using the DOM, but
//IE doesn't support dynamically added attributes.
var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
suggest += 'onmouseout="javascript:suggestOut(this);" ';
suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
suggest += 'onkeypress="javascript:keyPressFunc(k,this);' //THIS IS NEW
suggest += 'id="item"+i'; //THIS IS THE NEW LINE TO ADD
suggest += 'class="suggest_link">' + str[i] + '</div>';
ss.innerHTML += s
}
function keyPressFunc(k, comesFrom)
{
keyIn = k.keyCode;
suggestOut(this);
getsFocusId = "item" + 39-keyIn //38 is up arrow, 40 is down
suggestOver(document.getElementById(getFocusId));
}
Возможно, я перепутал аргументы для входящего ключа и элемента отчетности, но это идея.Широкие штрихи звучат, даже если некоторые детали отсутствуют:
1) добавьте уникальные (и последовательные) идентификаторы к каждому из этих элементов
2) добавьте событие для нажатия клавиши, используйте .keyCode для получения значения,стрелка вверх - 40, вниз - 38, ввод - 13, esc - 27. страница вверх, pagedown, end, home - 33-36
3) Для каждого из них вы должны сделать то, что вы в настоящее время делаете, для предложить.нажатие клавиши, и то, что вы в настоящее время делаете для наводки на другую
Я не делал ничего подобного в vanilla javascript довольно долгое время, поэтому я нечеткий.Я думаю, что вы действительно выиграете от jQuery, я знаю, что получил бы.
PS - получите jQuery.Тогда вы можете легко настроить эти события с такими вещами, как
$(".suggest_link").keypress(function(k) {.....