Я реализую поле «автозаполнение» AJAX: пользователь вводит строку в текстовое поле ввода, отображается скрытый div с таблицей, а затем он / она может щелкнуть строку или прокрутить список со стрелками вверх / вниз ; в то же время фокус по-прежнему удерживается на поле ввода текста.
В основном все работает нормально, но есть деталь, которую я не могу реализовать, что кажется концептуально сложным или даже невозможным. Я хотел бы скрыть список предложений, когда пользователь перемещает курсор в другое поле ввода или просто нажимает на пустую точку окна. Самостоятельно этого добиться несложно, я просто добавил callback OnBlur; но это прерывает выбор элемента OnClick, поскольку событие onblur запускается перед щелчком, а затем DIV исчезает до того, как запускается событие onclick...
Я подумал о реализации обратного вызова onclick для всего окна, а затем проверить, где произошел щелчок, но это кажется слишком неуклюжим и искаженным. У кого-нибудь есть идея получше? Спасибо!
setTimeout
, когда окно автозаполнения скрывается по событиюblur
. Но у этого трюка есть проблема сactive
элементом окна автоподсказки. - person Abhishek Kamal   schedule 29.08.2020