Ich habe ein Eingabefeld, in dem ich versuche, einen Vorschlag zur automatischen Vervollständigung zu machen. Code sieht aus wie
<input type="text" id="myinput">
<div id="myresults"></div>
Beim blur()Ereignis der Eingabe möchte ich das div der Ergebnisse ausblenden:
$("#myinput").live('blur',function(){
$("#myresults").hide();
});
Wenn ich etwas in meine Eingabe schreibe, sende ich eine Anfrage an den Server und erhalte eine json-Antwort, analysiere sie in die ul-> li-Struktur und lege diese ul in mein #myresultsdiv.
Wenn ich auf dieses analysierte li-Element klicke, möchte ich den Wert von li festlegen, um #myresultsdiv einzugeben und auszublenden
$("#myresults ul li").live('click',function(){
$("#myinput").val($(this).html());
$("#myresults").hide();
});
Alles läuft gut, aber wenn ich auf mein li- blur()Ereignis klicke, wird es vorher ausgelöst click()und der Wert der Eingabe erhält nicht das HTML von li.
Wie kann ich eine click()Veranstaltung vorher einrichten blur()?
blurjedoch nach dem Klicken auf ein Ereignis wirklich ausgelöst werden li, müssen Sie es wahrscheinlich nicht $("#myresults").hide()im Klick-Handler ausführen . Es scheint so, $(this).html()als würde eine leere Zeichenfolge zurückgegeben. Könnten Sie logoder alert $(this).html()um sicher zu gehen?
blur()und click()Handler hinzuzufügen , es gibt keine Aktionen nach dem blur()Ende