Gdy użytkownik trzyma wciśnięty klawisz, chcę, aby zdarzenie keydown() zostało wywołane tylko raz, ale zostanie wywołane do momentu, aż użytkownik przestanie naciskać klawisz.Jak wyłączyć powtarzalny keydown w jQuery
Oto co próbuję zrobić:
$(document).keydown(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == '39'){
$("#box").animate({"left": "+=30px"}, "fast");
}
});
Tak więc, gdy użytkownik naciśnie klawisz strzałki w prawo, chcę # pudełko div przenieść 30px w prawo. Porusza się, ale jeśli użytkownik przytrzyma wciśnięty klawisz, odlatuje.
Potrzebuję go do przeniesienia tylko o 30 pikseli na każde naciśnięcie i zatrzymania, nawet jeśli użytkownik przytrzymuje naciśnięty klawisz. Czy wiesz, jak można to osiągnąć?
W notatce dotyczącej wygody, 'event.keyCode? event.keyCode: event.which' jest odpowiednikiem 'event.keyCode || event.which ", nawet dla nie-Booleans. – Keen