Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вопрос по созданию динамического списка (https://javascript.ru/forum/dom-window/20533-vopros-po-sozdaniyu-dinamicheskogo-spiska.html)

ApD 08.08.2011 19:49

Вопрос по созданию динамического списка
 
Вложений: 1
Создаю форму регистрации с вводом имени. После ввода хотя бы 2х букв открываться div чуть ниже поля ввода со списком имен на введенные буквы. По клику на имени оно копируется в форму и див скрывается. Проблема в том, что при переходе в другое поле ввода диф должен так же скрываться. Но получается если скрытие div`а вешать на потерю форуса поля ввода, то при нажатии на одно из имен фокус теряется до того как диф получает событие.

Я вижу выход только в отслеживании положения курсора мыши в момент потери фокуса полем ввода, и если мышь над списком имён, то сначала обрабатывать нажатие, а потом уже скрывать этот список. Но тут могу быть проблемы при переходах между полями с помощью Tab, да и вообще какое-то "кривое" решение, как мне кажется.

Возможно есть более простой и эффективный метод?

devote 09.08.2011 07:25

отслеживай событие mousedown у списка обрабатывай в нем перенос текста в input, и отмени в нем на время событие onblur у поля над которым делаешь манипуляции и после отдай фокус обратно полю ввода и верни событие onblur ну а в конце запрещай дальнейшее всплытие событий.

ApD 09.08.2011 15:48

Так в том то и проблема, что события в списке не происходят, потому как onblur у поля ввода наступает быстрее, чем onclick у списка. В итоге при нажатии кнопки список исчезает до клика на списке. Если убирать скрытие списка по потери фокуса, то при переходе между полями Tab`ом список вообще не исчезает.

devote 09.08.2011 15:56

говорю же про mousedown а не про click это разные вещи

ApD 09.08.2011 16:04

Всё заработало, большое спасибо. Надо то было всего-лишь заменить onclick на onmousedown. :)

Единственный вопрос, чтоб больше на наступать на эти грабли, как всё-таки определить последовательность наступления событий, "на глаз" и методом экспериментов? Или где-нибудь можно про это почитать?

devote 09.08.2011 16:21

Цитата:

Сообщение от ApD
"на глаз" и методом экспериментов?

тока так=) Это можно сделать но не во всех браузерах увы

ApD 09.08.2011 16:42

Ну чтож, буду впредь умнее :) большое спасибо.


Часовой пояс GMT +3, время: 23:54.