Ho un campo di input, dove provo a dare suggerimenti per il completamento automatico. Il codice sembra
<input type="text" id="myinput">
<div id="myresults"></div>
blur()
All'evento dell'ingresso voglio nascondere il div dei risultati:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Quando scrivo qualcosa nel mio input invio richiesta al server e ottengo una risposta json, analizzandola in ul-> li struttura e inserisco questo ul nel mio #myresults
div.
Quando faccio clic su questo elemento li analizzato, voglio impostare il valore da li per inserire e nascondere #myresults
div
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Tutto sta andando bene, ma quando faccio clic sul mio blur()
evento li si attiva prima click()
e il valore dell'input non ottiene l'html di li.
Come posso impostare un click()
evento prima blur()
?
blur
si attiva davvero dopo aver fatto clic su un li
, probabilmente non è necessario eseguire $("#myresults").hide()
nel gestore di clic. Quello che sembra stia accadendo è che $(this).html()
sta restituendo una stringa vuota. Potresti log
o alert
$(this).html()
per esserne sicuro?
blur()
e click()
gestori, non ci sono azioni dopo le blur()
fine