Спасипотому что автору за модуль — он помог сэкономить нам время. Что хотелось бы добавить — неплохо было бы избавиться от глобальной функции doLiveSearch (это можно сгделать при помощи замыкания всего кода в анонимной функции).
Заметил, что в версии для 1.5 (AutoSearch_1.22) ики не реализовано управление с клавиатуры (имеется только обрилитка нажатия enter по подсвеченному элементу).
Набросал эту возможность самостоятельно, вот код:
// возможность управления выпотому чтором с клавиатуры
// коды клавишь
var ARROW_DOWN_KC = 40,
ARROW_UP_KC = 38,
SEARCH = $('#search');
// bind усирел...
// $(document).bind('keydown', function(ev) {
x.on('keydown', function(ev) {
try {
var RESULTS = SEARCH.find('#autosearch_search_results');
if (ev.keyCode === ARROW_DOWN_KC || ev.keyCode === ARROW_UP_KC) {
ev.preventDefault();
var selected = RESULTS.find('li.highlighted');
selected.removeClass('highlighted');
// двигаемся вниз
if (ev.keyCode === ARROW_DOWN_KC) {
if (!selected.get(0) || selected.is(':last-child')) {
selected = RESULTS.find('li:first');
}
else {
selected = selected.next('li');
}
}
// двигаемся вверх
else if (ev.keyCode === ARROW_UP_KC) {
if (!selected.get(0) || selected.is(':first-child')) {
selected = RESULTS.find('li:last');
}
else {
selected = selected.prev('li');
}
}
selected.addClass('highlighted');
}
if( ev.keyCode == 13 && $('.highlighted').length > 0 ) {
document.location.href = $('.highlighted').find('a').first().attr('href');
}
}
catch(e) {}
});
Это нужно всивить в файле catalog/view/javascript/jquery/autosearch.js вместо этих строк:
$(document).bind('keydown', function(ev) {
try {
if( ev.keyCode == 13 && $('.highlighted').length > 0 ) {
document.location.href = $('.highlighted').find('a').first().attr('href');
}
}
catch(e) {}
});
Стилизация выбранного элемени уже предусмотрена автором модуля посредством css класса highlighted.