Situazione: Ho un gestore keydown
con un switch
per quello tasto viene premuto roba, abbastanza standard, ma quando un tasto è premuto l'evento keydown
più volte (e non solo una volta quando il tasto è effettivamente premuto).forza keydown evento a fuoco una sola volta per keyCode
Perché è un problema: voglio mantenere la keydown
ascoltatore attivo, vale a dire essere in grado di rilevare più di un tasto premuto in una sola volta, ma hanno solo il fuoco evento una volta per keydown
. Voglio fare qualcosa sullo keyup
per quello keyCode
in base al tempo tra il basso e l'alto, ma quel momento si sta facendo rovinare a causa dei licenziamenti multipli.
Quello che ho provato: Attualmente sto tenere un elenco di keyCodes
che sono in calo, e controllando contro quelli della mia keydown
gestore per mantenere il comportamento predefinito accada se il keyCode
è nella mia lista. Tuttavia, l'evento continua a sparare molto spesso e sono preoccupato dell'efficienza/eleganza di questa soluzione.
La domanda attuale: C'è un buon modo per limitare la cottura della keydown
evento per solo quando la chiave è fisicamente spinto verso il basso, o solo ascoltare keycodes specifici?
"essere in grado di rilevare più di un tasto premuto contemporaneamente" Ciò significa che cosa? – epascarello
Ad esempio, tieni premuto il tasto 'y', quindi tieni premuto il tasto 'o'. Ciò esclude la soluzione di rimuovere l'evento keydown e aggiungerlo nuovamente dopo la chiave. –