--- title: event slug: Web/API/Event tags: - DOM - Gecko - Reference_del_DOM_di_Gecko - Tutte_le_categorie translation_of: Web/API/Event ---
{{ ApiRef() }}
Questo capitolo descrive il modello degli eventi del DOM Level 2 così come è implementato in Gecko. Viene descritta l'interfaccia Event, così come le interfacce per la registrazione di eventi per i nodi del DOM, i gestori di eventi, i listener e diversi esempi che mostrano come le interfacce dei diversi eventi si relazionano tra loro.
Vi è un diagramma eccellente che spiega chiaramente le tre fasi del flusso degli eventi nella bozza di DOM Level 3.
Event
I gestori degli eventi possono essere assegnati a vari elementi DOM. Quando un dato evento si verifica, un oggetto evento viene creato dinamicamente e passato agli event listener che permettono di gestirlo. L'interfaccia Event
del DOM è quindi accessibile dalla funzione che gestisce l'evento, alla quale viene passato un oggetto evento come primo e unico argomento.
Vi sono tre modi di assegnare un listener a un elemento. Con due di queste tecniche, l'oggetto evento viene passato implicitamente alla funzione che gestisce l'evento. Con la terza tecnica, occorre passare esplicitamente l'oggetto evento come parametro.
L'esempio seguente mostra come un oggetto evento viene passato a tale funzione e come può essere utilizzato all'interno della funzione.
Si noti che nel codice non viene passato alcun parametro "evt". L'oggetto evento viene passato automaticamente a foo
. Tutto ciò che occorre fare è definire un parametro nel gestore di eventi che riceva l'oggetto evento.
function foo(evt) { // le funzioni per la gestione degli eventi come questa // ricevono un riferimento implicito all'oggetto evento che gestiscono // (in questo caso abbiamo scelto di chiamarlo "evt"). alert(evt); } elementoTabella.onclick = foo;
Questo esempio è molto semplice, ma mostra una caratteristica importante degli eventi nel DOM di Gecko, cioè che è possibile accedere all'oggetto evento dalla funzione gestore. Una volta che si ha un riferimento a un evento, si può accedere a tutte le proprietà e ai metodi descritti in questo capitolo.
Oltre all'oggetto event
qui descritto, il DOM di Gecko fornisce anche metodi per la registrazione dei listener sui nodi del DOM, la rimozione di questi listeners ed eliminare gli eventi dal DOM. Questi event listener sugli elementi HTML o XML sono i modi principali per accedere agli eventi. Questi tre metodi sono descritti nella lista sottostante.
Si può anche passare un riferimento all'oggetto evento sotto forma di un parametro definito, chiamato event
, alla funzione che gestisce l'evento. Il funzionamento è molto simile a quello della parola chiave this
.
<html> <head> <title>esempio sul parametro evento</title> <script type="text/javascript"> function mostraCoordinate(evt){ alert( "valore clientX: " + evt.clientX + "\n" + "valore clientY: " + evt.clientY + "\n" ); } </script> </head> <body onmousedown="mostraCoordinate(event)"> <p>Per conoscere le coordinate della posizione del mouse, clicca in qualunque punto di questa pagina.</p> </body> </html>
Utilizzando l'oggetto event
predefinito è possibile passare altri parametri alla funzione, come mostrato nel seguente esempio:
<html> <head> <title>esempio sul parametro evento + parametri extra</title> <script type="text/javascript"> var par2 = 'ciao'; var par3 = 'mondo!'; function mostraCoordinate(evt, p2, p3){ alert( "valore clientX: " + evt.clientX + "\n" + "valore clientY: " + evt.clientY + "\n" + "parametro 2: " + p2 + "\n" + "parametro 3: " + p3 + "\n" ); } </script> </head> <body onmousedown="mostraCoordinate(event, par2, par3)"> <p>Per conoscere le coordinate della posizione del mouse e visualizzare un saluto al mondo, clicca in qualunque punto di questa pagina.</p> </body> </html>
<alt>
è stato premuto durante l'evento.<ctrl>
è stato premuto durante l'evento.meta
è stato premuto durante l'evento.<shift>
è stato premuto durante l'evento.AbstractView
dal quale l'evento è stato generato.DocumentEvent
.{{ languages( { "en": "en/DOM/event", "es": "es/DOM/event", "fr": "fr/DOM/event", "pl": "pl/DOM/event" } ) }}