У меня есть поле ввода, где я пытаюсь сделать предложение автозаполнения. Код выглядит так
<input type="text" id="myinput">
<div id="myresults"></div>
На входном blur()
событии я хочу скрыть результаты div:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Когда я что-то записываю в свой ввод, я отправляю запрос на сервер и получаю ответ json, разбираю его в структуре ul-> li и помещаю этот ul в мой #myresults
div.
Когда я нажимаю на этот разобранный элемент li, я хочу установить значение от li до input и скрыть #myresults
div
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Все идет хорошо, но когда я нажимаю на blur()
событие li, которое запускается раньше, click()
и значение input не получает html li.
Как я могу настроить click()
событие раньше blur()
?
blur
он действительно запускается после того, как вы нажали на li
, то вам, вероятно, не нужно выполнять $("#myresults").hide()
обработчик щелчка. Кажется, что происходит то, что $(this).html()
возвращается пустая строка. Не могли бы вы log
или alert
$(this).html()
убедиться?
blur()
и handlers click()
, после blur()
конца никаких действий нет