Istnieje kilka prostych plugin Zrobiłem to robi exacly że. Wymaga znacznie mniej kodu niż niektóre proponowane rozwiązania i jest bardzo lekki (~ 0,6kb).
Najpierw należy utworzyć obiekt Bid
, niż może być w dowolnej chwili bumped
. Każde wywołanie bump opóźni odpalanie połączenia telefonicznego Bid dla następnej podanej ilości czasu.
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
Kiedy Bid
obiekt jest gotowy, musimy go jakoś bump
. Podłączmy się, podskakując do keyup
event
.
$("input").keyup(function(){
searchBid.bump($(this).val()); //parameters passed to bump will be accessable in Bid callback
});
Co się dzieje tutaj jest:
Everytime użytkownik naciska klawisz oferta jest 'opóźniony' (zderzyłem) dla kolejnych 200ms. Jeśli 200ms przejdzie bez ponownego "bumped", wywołanie zwrotne zostanie zwolnione.
Ponadto, masz 2 dodatkowe funkcje zatrzymywania stawkę (jeśli naciśnięty użytkownika ESC lub kliknąć poza wejściem na przykład) i do wykańczania i natychmiast wypalania zwrotnego (na przykład, gdy użytkownik naciśnie klawisz Enter):
searchBid.stop();
searchBid.finish(valueToPass);
Interesujące pytanie - czy istnieje jakiś szczególny powód, dla którego chcesz to zrobić? – karim79
Zasadniczo, gdy użytkownik zakończy pisanie w polu tekstowym, zostanie mu przedstawiony nowy. Ponieważ pole tekstowe było ostatnim, nie mogłem użyć funkcji Bur(), ponieważ musiałbym poczekać, aż fokus znajdzie się na innym polu. –
Nie ma prostych, 100% sposobów na zrobienie tego. Najprostszym jest użycie zdarzenia rozmycia wejścia. (innymi sposobami może być poczekanie X sekund ** po ** użytkownik skończył pisać). –