Hay algunos simples plugin que he hecho que hace que exacly. Requiere mucho menos código que algunas soluciones propuestas y es muy ligero (~ 0,6kb)
Primero crea el objeto Bid
que puede ser bumped
en cualquier momento. Cada bump retrasará la activación de Puja para la próxima cantidad de tiempo dada.
var searchBid = new Bid(function(inputValue){
//your action when user will stop writing for 200ms.
yourSpecialAction(inputValue);
}, 200); //we set delay time of every bump to 200ms
Cuando Bid
objeto está listo, tenemos que bump
de alguna manera. Vamos a adjuntar golpes a keyup
event
.
$("input").keyup(function(){
searchBid.bump($(this).val()); //parameters passed to bump will be accessable in Bid callback
});
Lo que sucede aquí es:
usuario Cada vez que pulsa la tecla, la oferta es 'retrasa' (golpeado) para los próximos 200 ms. Si pasan 200 ms sin que se repita el mensaje, se activará la devolución de llamada.
Además, usted tiene 2 funciones adicionales para detener la oferta (si se pulsa ESC o usuario hace clic fuera de la entrada, por ejemplo) y para el acabado y el despido inmediato de devolución de llamada (por ejemplo, cuando el usuario pulsa la tecla enter):
searchBid.stop();
searchBid.finish(valueToPass);
Pregunta interesante: ¿hay alguna razón en particular sobre por qué quieres hacer eso? – karim79
Básicamente, cuando el usuario ha terminado de escribir en un cuadro de texto, se le presenta uno nuevo. Como el cuadro de texto era el último, no pude usar onBlur() ya que habría tenido que esperar hasta que el foco estuviera en otra caja. –
No hay formas directas y 100% para hacerlo. Lo más simple es usar el evento de desenfoque de la entrada. (Otras formas podrían ser esperar X segundos ** después de que ** el usuario haya terminado de escribir). –