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 #myresultsdiv.
Quando faccio clic su questo elemento li analizzato, voglio impostare il valore da li per inserire e nascondere #myresultsdiv
$("#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()?
blursi 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 logo alert $(this).html()per esserne sicuro?
blur()e click()gestori, non ci sono azioni dopo le blur()fine