http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
Усовершенствование метода init() | Книга AJAX
 

Итак, все новшества добавлены, и теперь их необходимо ини ровать. Прежний метод init() устанавливал обработчик соб key up, теперь он должен также установить обработчики событий down и onblur и создать выпадающий список. Установка обра события onkeydown производится так же, как и установка обра события onkeyup:
AutoSuggestControl.prototype.init = function () {
var oThis = this;
this.textbox.onkeyup = function (oEvent) { if (!oEvent) {
oEvent = window.event;
}
oThis.handleKeyUp(oEvent);
};
this.textbox.onkeydown = function (oEvent) { if (!oEvent) {
oEvent = window.event;
oThis.handleKeyDown(oEvent); II здесь находится остальной код
};
Как видите, для обработки события onkeydown применяется точно же алгоритм: сначала определяется местоположение объекта ev тем он передается методу handleKeyDown().
До сих пор скрыть выпадающий список можно было только по тию на клавишу Enter. Но что если пользователь щелкнет мышью ком-либо другом месте экрана или нажмет на клавишу табул бы перейти к другому полю формы? Чтобы перехватить это надо установить обработчик события onblur, по которому вып список с подсказками будет скрываться при потере фокуса полем
AutoSuggestControl.prototype.init = function () { var oThis = this;
this.textbox.onkeyup = function (oEvent) { if (!oEvent) {
oEvent = window.event;
}
oThis.handleKeyUp(oEvent);
this.textbox.onkeydown = function (oEvent) { if (!oEvent) {
oEvent = window.event;
}
oThis.handleKeyOown(oEvent);

this.textbox.onblur = function () { oThis.hideSuggestions();

this.createDropDown();
};
Вы наверняка обратили внимание на вызов метода createDropDown(), который создает начальную структуру выпадающего списка. Этим мы завершаем реализацию поддержки управления с клавиатуры для эле¬мента управления автодополнением, но осталось еще кое-что, на что мы хотели бы обратить ваше внимание.