You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Qui dobbiamo usare due gestori: `document.onkeydown` e `document.onkeyup`.
3
3
4
-
Andiamo a creare un set `pressed = new Set()` per mantenere i tasti attualmente premuti.
4
+
Andiamo ad impostare `pressed = new Set()` per memorizzare i tasti attualmente premuti.
5
5
6
6
Il primo gestore lo aggiunge, mentre il secondo lo rimuove. Ad ogni `keydown` controlliamo se abbiamo abbastanza tasti premuti, ed in caso affermativo la funzione verrà eseguita.
Copy file name to clipboardExpand all lines: 2-ui/3-event-details/7-keyboard-events/2-check-sync-keydown/task.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ importance: 5
4
4
5
5
# Tasti di scelta rapida estesi
6
6
7
-
Create una funzione `runOnKeys(func, code1, code2, ... code_n)` che viene eseguita `func`premendo contemporaneamente sui tasti con i codici `code1`, `code2`, ..., `code_n`.
7
+
Create una funzione `runOnKeys(func, code1, code2, ... code_n)` che esegue `func`quando vengono premuti contemporaneamente i tasti con i codici `code1`, `code2`, ..., `code_n`.
8
8
9
9
Ad esempio, il seguente codice mostra un `alert` quando vengono premuti `"Q"` e `"W"` insieme (in qualunque lingua, con o senza il CapsLock)
Copy file name to clipboardExpand all lines: 2-ui/3-event-details/7-keyboard-events/article.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,11 +69,11 @@ Cosa succederebbe se un tasto non restituisse nessun carattere? Per esempio, `ke
69
69
| `key:Backspace` |`Backspace` |`Backspace` |
70
70
| `key:Shift`|`Shift` |`ShiftRight` or `ShiftLeft` |
71
71
72
-
È importante sottolineare che `event.code` specifica esattamente il tasto premuto. Per esempio, la maggioranza delle tastiere hanno due tasti `key:Shift`: uno nel lato sinistro e uno nel lato destro. `event.code` ci dice esattamente quale dei due viene premuto, `event.key` è invece responsabile invece del "significato" del tasto: cosa è (cioè uno "Shift").
72
+
È importante sottolineare che `event.code` specifica esattamente il tasto premuto. Per esempio, la maggioranza delle tastiere ha due tasti `key:Shift`: uno nel lato sinistro e uno nel lato destro. `event.code` ci dice esattamente quale dei due viene premuto, `event.key` è invece responsabile del "significato" del tasto: cosa è (cioè uno "Shift").
73
73
74
74
Mettiamo il caso che volessimo gestire una scorciatoia: `key:Ctrl+Z` (o `key:Cmd+Z` su Mac). La maggior parte degli editor di testo associa a questa combinazione, l'azione "Undo". A quel punto potremmo impostare un listener sul `keydown` e controllare quale tasto venga premuto.
75
75
76
-
Ma qui ci troveremo di fronta a un dilemma: in questo listener, cosa dovremmo controllare? Il valore di `event.key` oppure quello di `event.code`?
76
+
Ma qui ci troveremo di fronte a un dilemma: in questo listener, cosa dovremmo controllare? Il valore di `event.key` oppure quello di `event.code`?
77
77
78
78
Da una parte, il valore di `event.key` è un carattere, e cambia a seconda del linguaggio. Se il visitatore gestisce più lingue nel suo sistema operativo e passa da una all'altra, lo stesso tasto restituirebbe caratteri differenti. Quindi ha senso controllare `event.code`, che è sempre lo stesso.
79
79
@@ -122,7 +122,7 @@ Per eventi generati da auto-repeat, l'oggetto evento coinvolto avrà la propriet
122
122
123
123
## Azioni default
124
124
125
-
Le azioni di default possono essere tante e variegate, dal momento che sono tante le cose che possono essere iniziate tramite la tastiera.
125
+
Le azioni di default possono essere tante e variegate, dal momento che sono tante le cose che possono essere attivate tramite la tastiera.
126
126
127
127
Per esempio:
128
128
@@ -162,7 +162,7 @@ function checkPhoneKey(key) {
162
162
163
163
Adesso le frecce e il tasto cancella funzionano.
164
164
165
-
...Tuttavia, siamo ancora in grado di inserire qualunque valore, usando il mouse, attraverso la funzionalità tasto destro + Incolla. Quindi il filtro non è al 100% affidabile. Volendo, possiamo lasciarlo così, dato che funzionerà la maggior parte delle volte. Un approccio alternativo, invece, potrebbe essere quello di tenere traccia dell'evento `input`, scaturito dopo ogni modifica al campo di testo. A quel punto, possiamo sempre verificare il nuovo valore ed evidenziarlo/modificarlo se non ritenuto valido.
165
+
...Tuttavia, siamo ancora in grado di inserire qualunque valore, usando il mouse, attraverso la funzionalità tasto destro + Incolla. Quindi il filtro non è al 100% affidabile. Volendo, possiamo lasciarlo così, dato che funzionerà la maggior parte delle volte. Un approccio alternativo, invece, potrebbe essere quello di tenere traccia dell'evento `input`, che scaturisce dopo ogni modifica al campo di testo. In questo modo possiamo sempre verificare il nuovo valore ed evidenziarlo/modificarlo se non ritenuto valido.
0 commit comments