Тут давича соорудил компонент для быстрого поиска по массиву строки, вводящейся в Эдит (поиск обеспечивает любое вхождение искомой строки). Для этого соорудил: Эдит(id="textF" ), под ним Див (id="div2"), в который вывожу массив(объявил его глобально) отсортированных строк.
Принцип действия:
по введению буковки(ок) (количество букв, после которого начинается поиск можно изменять) в Эдит:
<input id="textF" value="ввести символы" autocomplete="off" onkeyup="noNumbers(event)">
производится проверка вхождения набранной строки в строки, которые имеются в массиве. В результате чего, в Див2 помещаются все строки, в которых есть строка из Эдита. По нажатию стрелки "вверх"/"вниз " пожно, подсветив фоном, переместиться на интересующую запись и выбрать ее мышей или по нажатию на Энтер. Тормоза начинаются в зависимости от кол-ва строк в массиве (чем больше строк, тем медленнее происходит реакция на нажатие стрелок). Вот один из обработчиков:
if (e.keyCode==38){ //нажатие на стрелку "вверх"
if (child!=0){
if (index>=1) {
div2.childNodes[index-1].style.backgroundColor = '#ccc';
div2.childNodes[index].style.backgroundColor = '';
index-=1;
}
else (index = -1)
}
return (false);
}
div2.childNodes[index] - строка с номером index (моя переменная), которая отображается в текущий момент
обработчик onkeyup() взял так как он мне более подошел
Вопросы: 1. чем могут быть вызваны эти тормоза? и
2. можно ли сделать чтоб при удерживании стрелки вниз/вверх происходило быстрое перемещение подсветки строк в Диве?