Ho un input di ricerca che invia dati da un input a un file php mentre scrivo. Il file php esegue una ricerca sul mio database e mostra un elenco di opzioni di ricerca. Sai, lo stile ajax è in diretta ricerca.Come posso fare in modo che la mia ricerca live di jQuery attenda un secondo prima di eseguire la ricerca?
Il mio problema è, se si digita qualcosa molto veloce, si potrebbe semplicemente effettuare una ricerca delle prime 1 o 2 lettere anche se ne sono state digitate altre 10. Ciò causa alcuni problemi.
mio jQuery sembra un po 'come questo:
$(document).ready(function(){
$('#searchMe').keyup(function(){
lookup(this.value);
});
});
e
function lookup(searchinput) {
if(searchinput.length == 0) {
// Hide the suggestion box.
$("#suggestions").hide();
} else {
$('#loading').fadeIn();
$.post("/RPCsearch.php", {queryString: ""+searchinput+""}, function(data){
if(data.length > 0) {
$("#suggestions").html(data).show();
$('#loading').fadeOut();
}
});
}
} // lookup
Quindi sono solo curioso, come posso fare in modo che il mio script attende fino a quando ho finito di battitura prima di eseguire la funzione? La mia logica dice qualcosa come se un tasto non è stato premuto per 200 micro secondi, eseguire la funzione, altrimenti tenere un po '.
Come è fatto?
Grazie mille per questo Josh. alcune cose nuove là dentro che non ho visto! – willdanceforfun
ha funzionato a meraviglia. – willdanceforfun
Grazie mille. Ha funzionato come un fascino. –