Rispondi 
JavaScript: mini tutorial sui gestori di eventi
Modalità discussione Modalità lineare
01-08-2007, 23:14
Messaggio: #1 (permalink)
L'avatar di MetaMorph MetaMorph
Super Moderatore
******
Registrato: Apr 2007
Messaggi: 103
Reputazione:

JavaScript: mini tutorial sui gestori di eventi


JavaScript : mini tutorial sui gestori di eventi (versione 2.0)

Dopo il malaugurato disastro in cui anche questa guida è andata perduta, la riscrivo, approfittandone anche per apportarvi alcuni miglioramenti.

Per prima cosa cerchiamo di definire (cosa non proprio semplice) cos'è un evento: lo possiamo definire come un comportamento dell'utente monitorabile dal browser, come ad esempio il passaggio del mouse in una determinata area della pagina o la selezione di un elemento di un modulo. In JavaScript, quindi, un gestore di eventi è una modalità per intercettare questi eventi ed eseguire delle routine particolari in risposta ad essi.
Spiegata così, la cosa è molto generica, quindi sarà meglio illustrare il tutto con degli esempi qui di seguito.

Per iniziare: come specificare una risposta ad un evento
Per scrivere un gestore di evento, ci sono vari modi:
- il primo consiste nel dichiarare una funzione JavaScript e poi di assegnarla all'interno dello stesso script nel modo seguente:

Codice:
function carica ()
{
...
}

window.onload = carica;

è un metodo poco utilizzato perché non così immediato e perché supporta pochi tipi di evento, ma ha il vantaggio che, copiando il codice precedente in un file separato, è possibile includerlo uguale in varie pagine semplicemente collegando un file di script
- il secondo metodo usa un approccio opposto al precedente: si specifica ciò che deve essere fatto in risposta all'evento direttamente sull'elemento corrispondente, ad esempio:

Codice:
<img src="..." alt="..." onclick="alert('Hello, World!')" />

- il terzo metodo è una via di mezzo tra i due precedenti ed è quello più utilizzato: si crea una funzione separata dal corpo della pagina (volendo, anche in un file JavaScript esterno) e poi si richiama questa funzione in risposta ad un evento. Ecco un esempio:

Codice:
function trim_spaces (text)
{
...
return ...
}

...

<input type="text" name="..." onblur="this.value=trim_spaces(this.value)" />


Eventi di caricamento e distruzione
Iniziamo adesso a passare in rassegna i principali gestori di eventi:
- onload corrisponde al completo caricamento di un oggetto (di solito un'immagine o l'intera pagina)
- onunload corrisponde alla distruzione di un oggetto (di solito l'intera pagina).
Ecco, ad esempio, come potete realizzare una semplice accoppiata di saluti con gli alert di JavaScript (per inciso: di norma sono piuttosto fastidiosi. Quindi cercate di valutarne l'aspetto didattico piuttosto che trovarvi un'idea da copiare):

Codice:
<body onload="alert('Benvenuto sul mio sito!')" onunload="alert('Torna presto a visitarmi!')">
...
</body>


Eventi riguardanti passaggio e clic del mouse
Con il mouse ci si può sbizzarrire, ci sono tante cose gestibili in questo senso soprattutto per quanto riguarda le immagini. Ecco le principali:
- onmouseover viene invocato all'entrata del mouse sopra ad un oggetto
- onmouseout all'uscita del mouse da un oggetto
- onmousedown viene invocato alla pressione prolungata del pulsante del mouse su un oggetto
- onmouseup è invocato al rilascio del mouse dopo onmousedown
- onclick viene invocato con un click del mouse su un oggetto
- ondblclick viene invocato con un doppio click del mouse su un oggetto
A titolo di esempio, il "classico" rollover di immagini con un qualcosa in più:

Codice:
<a href="...">
<img src="off.jpg" onmouseover="this.src='on.jpg'" onmouseout="this.src='off.jpg'" onmousedown="this.src='push.jpg'" onmouseup="this.src='off.jpg'" />
</a>


Eventi di puntamento ad oggetti di modulo
Avete mai pensato a come su certi siti sia possibile che JavaScript verifichi all'istante i valori dei campi di un modulo? Probabilmente attraverso uno di questi gestori di evento:
- onfocus invocato quando l'oggetto viene puntato dal mouse o dalla tastiera (dal tasto TAB per capirci)
- onblur invocato quando l'oggetto non è più puntato dal mouse (ovvero, quando si dà il focus ad un altro oggetto)
- onchange quando il valore di un campo di testo viene modificato
- onsubmit invocato subito prima dell'invio di un modulo al server
Un esempio con onblur è già stato illustrato sopra: immaginate che la funzione trim_spaces() sia un algoritmo che elimini gli spazi bianchi iniziali e finali di una stringa. Come in parte detto, però, con JavaScript potete anche verificare i dati un modulo prima di inviarlo al server, ecco come:

Codice:
function check_form ()
{
if (...) // condizione non valida
return false
if (...) // altra condizione non valida
return false
// tutto a posto? allora convalida
return true
}

...

<form name="..." action="..." method="..." onsubmit="return check_form()">
...
</form>


Eventi relativi alla tastiera
Infine, due chicche che vi consentono di monitorare la pressione dei tasti della tastiera:
- onkeydown invocato alla pressione di un tasto
- onkeyup invocato al rilascio di un tasto
Volete realizzare un convertitore di valute in tempo reale? Niente di più semplice:

Codice:
<input type="text" id="lire" onkeydown="document.getElementById('euro').value=parseFloat(this.value)/1936.27" />
<input type="text" id="euro" onkeydown="document.getElementById('lire').value=parseFloat(this.value)*1936.27" />


È tutto. Spero che questa mini guida possa risultarvi utile, in qualche modo. Per eventuali commenti o imprecazioni (notare lo slogan storico del mio sito... :-D), questo topic è a vostra disposizione.

Statemi bene...


DEMENTI4L SITE // THE BO4RD - Il forum di DEMENTI4L SITE // L'antro di MetaMorph

Mi trovate anche sui forum di AlterVista - Blogo.it Network

Ultima modifica di MetaMorph : 01-08-2007 alle ore 23:19.

Visita sito dell'autore trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
02-08-2007, 02:03
Messaggio: #2 (permalink)
Namaless
Forumista Attivo
****
Registrato: Nov 2007
Messaggi: 320
Reputazione:

RE: JavaScript: mini tutorial sui gestori di eventi


Al momento ho dato soltanto una veloce lettura... affermo di essere ignorante a livelli medi su javascript in quanto piu o meno comprendo ma non realizzo da zero...

In ogni caso io realizzere + esempi, magari anche già disponibili a vedersi sul web.. 07

trova tutti i messaggi dell'autore Quota questo messaggio nella risposta
Rispondi 

Discussioni simili
Discussione: Autore Risposte: Letto: Ultimo messaggio
  HTML E JAVASCRIPT [Uso della sezione] djremix 0 51 23-04-2008 20:52
Ultimo messaggio: djremix
  Tutorial Html - Lezione 5 - Impostazione di un'immagine come sfondo gianni4 0 67 11-04-2008 16:04
Ultimo messaggio: gianni4
  Tutorial Html - Lezione 4 - Colore di uno sfondo gianni4 0 59 11-04-2008 15:57
Ultimo messaggio: gianni4

JavaScript: mini tutorial sui gestori di eventi
Guarda versione stampabile
Invia la discussione a un amico
Sottoscrivi la discussione
Aggiungi discussione alle favorite

Regole di Scrittura
Tu non puoi inserire nuovi messaggi.
Tu non puoi rispondere ai messaggi.
Tu non puoi inviare messaggi.
Tu non puoi modificare i tuoi messaggi.
Il codice HTML è Disattivato.
Il codice MyCode è Attivato.
Gli Smilies sono Attivato.
Il codice [IMG] Attivato.
Vai al Forum:

Data e Ora attuale: 14-05-2008, 00:36

Contattaci - Punto Web