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 #myresults
div.
Wenn ich auf dieses analysierte li-Element klicke, möchte ich den Wert von li festlegen, um #myresults
div 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()
?
blur
jedoch 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 log
oder alert
$(this).html()
um sicher zu gehen?
blur()
und click()
Handler hinzuzufügen , es gibt keine Aktionen nach dem blur()
Ende