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