Tengo una entrada de búsqueda que envía datos de una entrada a un archivo php mientras escribo. El archivo php hace una búsqueda en mi base de datos y muestra una lista de opciones de búsqueda. Ya sabes, la búsqueda en vivo de estilo ajax.¿Cómo hago que mi búsqueda jQuery en vivo espere un segundo antes de realizar la búsqueda?
Mi problema es que, si escribe algo realmente rápido, podría realizar una búsqueda de las primeras 1 o 2 letras aunque se hayan tipeado otras 10. Esto causa algunos problemas.
Mi jQuery se ve un poco como esto:
$(document).ready(function(){
$('#searchMe').keyup(function(){
lookup(this.value);
});
});
y
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
Así que tengo curiosidad, ¿cómo puedo hacer para que mi script espera hasta que haya terminado de escribir antes de ejecutar la función? Mi lógica dice algo así como si una tecla no se ha presionado durante 200 micro segundos, ejecuta la función, de lo contrario, espera un poco.
¿Cómo se hace esto?
solución
Muchas gracias por esto Josh. algunas cosas nuevas que no he visto! – willdanceforfun
trabajó una delicia. – willdanceforfun
Gracias una tonelada. Trabajado como un encanto. –