Vediamo adesso come funziona Jquery in caso di eventi, ossia quando si verifica un evento che nel caso del WEB è tipicamente il CLIC su un pulsante o su un altro elemento della pagina, oppure quando si invia un modulo al server o cose del genere. Insomma come dice la parola stessa ogni qual volta che si verifica un evento. La sintassi in questo caso è un po’ la stessa per tutti prendiamo in esempio solamente il submit e le altre sono per esternsione
.sumbit( hadler(eventObject))
.submit([eventData], hadler(eventObject))
.submit([eventData], handlet (eventObject))
Dove
- hadler(eventObject)) rappresenta la funzione che viene generata quando viene generato l’evento
- eventData è il mapping delle informazioni da passare
facciamo alcuni esempi per chiarire meglio
Nel caso volessimo applicare tale funzione a tutti gli elementi form presenti nella pagina dovremmo fare
$(“form”).submit(function(){
//codice
});
E una volta recuperato l’evento nella relativa funzione javascript troveremo
$evento.submit({name:value}, function (e) {
Var nome = e.data.name;
});
Prendiamo ora in esempio il click del mouse per quanto riguarda la propagazione degli eventi. Si prenda in considerazione il seguente codice
<div id =”content”> <div id=”right”> <p>CLICCA QUI</p> </div> </div>
E impostiamo il gestore evento su <p> nel seguente modo
$(‘p’).click(function(){
// codice eseguito
});
Facciamo adesso una grossa panoramica sull’oggetto event.
currentTarget Ritorna elemento DOM corrente nella propagazione dell’evento
data ci sono le informazioni passate al gestore dell’evento nel momento stesso in cui vi è stato associato
delegateTarget Ritorna l’elemento al quale è collegato il gestore d’evento attuale. Puo’ essere utilizzato per manipolare l’eleelmento che lo ha generato
isDefaultPrevented() Ritorna ture se è stato invocato il metodo preventDefault() su questo oggetto
isProgationStopped() Ritorna true se è stato invocato il metodo stopPropagtion() su questo oggetto
namespace Ritorna il namespace in fase di invio dell’evento
pageX Ritorna la posizione del mouse secondo la larghezza della pagina
pageY Ritorna la posizione del mouse secondo la lunghezza della pagina
preventDefault() impedisce che venga avviata l’azione di default
result ritorna l’ultimo valore invocato
stopPropagion impedisce la propagazione dell’evento
target per il target appunto dell’elemento evento insomma il suo contenuto
timestamp prende inizio dal 1 gennaio 1970 fino al momento in cui viene invocato con elementi in millesecondi.
Vediamo adesso i metodi che mette a disposizione JQUERY per operare nelle varie caselle di controllo tipicamente input
.blur() viene inviato a un elemento quanto questo perde il focus, swe avete presente il metodo nativo in javascript praticamente ha lo stesso funzionamento
.change() viene inviato a un elemento quaando cambia il suo valore
.focus() viene inviato quando questo elemento guadagna il cocus
.focusin() viene inviato quando un qualsiasi elemento invocato ottiene il focus quindi o l’elemento stesso o i suoi flgli
.focusout() Il contrario di focusin()
.select() L’evento select viene generato quando l’utente seleziona del testo ed è supportato solo per gli elementi <input type =”text”> e <textarea>
.submit() viene generato quando l’utente cerca di inviare un modulo. Puo’ essere associato solo a elementi di tipo <form>
Ora invece vi illustriamo i principali metodi in caso di evento da tastiera ossia quando un tasto viene premuto o rilasciato
.keydown() Collega un gestore all’evento keydown
.keypress() Collega un gestore all’evento keypress di Javascript
Mentre i piu’ importanti eventi del Mouse sono
.click() collega l’evento click nel mouse
.dclick() come sempre nel caso di doppio click
.mousedown() viene attivato quando l’utente si posizione con il mouse sopra un elemento e preme il mouse.
.mouseenter() viene inviato quando l’utente sposta il puntatore del mouse in modo che lasci l’eleemento.
.mousemove() viene inviato quando si posta il puntatore del mouse mentre questo è posizionato all’interno dell’elelemento
.mouseout() viene inviato quando l’utente sposta il puntatore del mouse al di fuori dell’eleemento
.mouseover() viene inviato quando l’utente sposa il puntatore del mouse al di fuori dell’elemento
.mouseup() viene inviato quando l’utente rilascia il tasto del mouse.
Vediamo adesso l’evento Hover che si verifica quando il puntatore del mouse viene posto su un elemento e ha la seguente sintassi
.hover( handlerIn(eventObject), handlerOur(eventObject) )
Dove
- handlerIn viene richiamato quando il puntatatore del mouse viene posizionato sopra l’elemento
- hadlerOut richiamato quando il puntatore del mouse si trova fuori dell’elemento.
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
.hover( handlerInOut(eventObject))
Vediamo ora come e quali sono I metodi sul document
.load() viene inviato quando l’eelemento e i suoi elementi figli sono stati completamente caricabili
.ready() viene invocato quando la struttura e i DOM sono completamente caricati nella pagina web.
.unload() collega un gestore all’evento unload
Facciamo adesso un paio di esempi per meglio potere comprendere questa tecnologia
$("a").bind("click",function (event) {
alert($(this).attr("href"));
});
In questa maniera si associa all’elemento a l’attributo href e lo facciamo tramite la funzione bind. E se volessimo sapere realmente quale elemento abbiamo cliccato dovremmo fare
$("a").bind("click",function (event) {
var target = event.target;
alert(target.tagName); //il nome del tag su cui abbiamo cliccato
});
vediamo adesso un esempio con la funzione event e .type
function Evento (event) {
if (event.type == "click") {
alert ("Click!");
} else {
alert ("Un altro evento");
}
}
$("a").bind("click focus blur",function (event) {
lanciaEvento(event);
});
in questa maniera possiamo intercettare l’evento click ossia pressione del mouse del tasto sinistro.
E una possibile implentazione di prevenDefault è la seguente
$("a").bind("click",function (event) {
event.preventDefault(); //blocca l'evento di default
// codice da eseguire
});
Ossia blocca l’evento associato di default e ne esegue un altro. Vediamo adesso un esempio piu’ concreto , ossia vediamo come sia semplice cambiare il background di una casella a cui abbiato dato il focus e conseguentemente lo abbiamo tolto all’adiacente.
|
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> |
|
<html xmlns=”http://www.w3.org/1999/xhtml”><head> |
|
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ /><title>Guida jQuery – Eventi 1</title> |
|
|
|
<link rel=”stylesheet” href=”reset.css” type=”text/css” /> |
|
<link rel=”stylesheet” href=”base.css” type=”text/css” /> |
|
<script type=”text/javascript” src=”jquery-1.3.2.js“></script> |
|
<style type=”text/css”> |
|
ul { |
|
list-style-type: disc; |
|
padding: 10px; |
|
background-color:#FFFFFF; |
|
} |
|
ul li { |
|
margin-top: 3px; |
|
margin-bottom: 3px; |
|
line-height: 16px; |
|
} |
|
fieldset p { |
|
margin:5px 0; |
|
} |
|
</style> |
|
<script type=”text/javascript”> |
|
$(function () { |
|
$(“:text”).bind(“focus blur”, {“background-color” : “#FFFFCC”}, function (event) { |
|
if (event.type == “focus”) { |
|
$(this).css(event.data); |
|
} else { |
|
$(this).css(“background-color”,””); |
|
} |
|
}); |
|
}); |
|
</script></head> |
|
<body> |
|
<h1>Esempi Eventi: associare e rimuovere gli eventi</h1> |
|
<p> </p> |
|
<p>Clicca nei campi di testo qui sotto</p> |
|
<p> </p> |
|
<div id=”contenitore” style=”width:400px”> |
|
<form> |
|
<fieldset> |
|
<p>campo 1 <input type=”text” name=”campo1″ /></p> |
|
<p>campo 2 <input type=”text” name=”campo2″ /></p> |
|
<p>campo 3 <input type=”text” name=”campo3″ /></p> |
|
</fieldset> |
|
</form> |
|
</div> |
|
</body></html> |
Dove reset.css è
/**
* CSS Reset Reloaded
*
* @author Eric Meyer
* @visit http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
body {
line-height: 1;
color: #000;
background-color: #FFF;
}
ol, ul {
list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
}
blockquote, q {
quotes: "" "";
}
a img {
border:none;
}
E base css è
/**
* %%Specific Body Style
*/
body,html {
}
body {
font: 12px Verdana, Arial, Helvetica, sans-serif;
margin:40px;
}
/**
* %%Layout
*/
#container {
width: 60% ;
}
/**
* %%Typography
*/
table {
font-size: 1em;
}
/* standards redesign */
h1 {
font-size:26px;
font-weight:bold;
}
h2 {
font-size:20px;
}
h3 {
font-size:16px
}
p {
line-height:150%;
}
strong {
font-weight:bold;
}
del {
text-decoration: line-through;
color: #666;
}
cite, em, dfn {
font-style:italic;
}
ins, dfn {
border-bottom: 1px solid #ccc;
}
sup {
vertical-align: super;
}
sub {
vertical-align: sub;
}
a abbr, a acronym {
border: none;
}
abbr, acronym {
text-transform: uppercase;
font-size: 85%;
letter-spacing: .1em;
}
abbr[title], acronym[title], dfn[title] {
cursor: help;
border-bottom: 1px dotted #ccc;
}
code, kbd, samp, pre, tt, var {
font-size: 92%;
font-family: monaco, "Lucida Console", courier, monospace;
}
/* dimensions */
small, .small, sup, sub {
font-size:80%;
}
.big {
font-size:145%;
}
.thin {
font-weight: lighter;
}
/* colors */
.red {
color:#F00;
}
.orange {
color:#F60;
}
.blue {
color:#03F;
}
.green {
color:#0C0;
}
/* various styles */
.underline {
text-decoration:underline;
}
.debug {
outline:1px solid #F00;
}
.highlight {
background-color:#FF6; /* bright yellow */
padding:0px 2px;
}
.quiet {
color:#666;
}
.loud {
color:#000;
}
/* on demand structure */
fieldset {
border:1px solid #ccc;
width:95%;
padding:7px;
margin-top: 10px;
margin-bottom: 10px;
}
fieldset legend {
padding:0 3px;
font-weight:bold;
}
form input[type='text'], form select, form textarea {
border:1px solid #ccc;
}
pre {
background: #EEE;
padding: 5px;
border: 1px solid #CCCCCC;
}
Vi consigliamo di provarlo, come potete vedere non è nulla di particolarmente difficile. Invece se volessimo rimuovere queste associazioni che nella definizione abbiamo chiamato handler dobbiamo fare semplicemente il seguente
$(":text").unbind(); // rimuovi tutti gli eventi dai campi di testo
$(":text").unbind("blur focus"); //rimuovi gli handlers per gli eventi focus e blur
$(":text").unbind("blur",blurFunction); // rimuovi uno specifico handler per l'evento blur
E ora vediamo un esempio con hover, toggle, che vi abbiamo spiegato prima, questo esempio non farà altro che provare se il mouse è dentro o meno una casella oppure se all’interno è stato digitato due volte il click.
|
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”> |
|
<html xmlns=”http://www.w3.org/1999/xhtml”><head> |
|
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ /><title>Guida jQuery – Eventi 3</title> |
|
|
|
<script type=”text/javascript” src=”jquery-1.3.2.js“></script> |
|
<style type=”text/css”> |
|
ul { |
|
list-style-type: disc; |
|
padding: 10px; |
|
background-color:#FFFFFF; |
|
} |
|
ul li { |
|
margin-top: 3px; |
|
margin-bottom: 3px; |
|
line-height: 16px; |
|
} |
|
#mousesopra, #toggleclick { |
|
width:20%; |
|
border:2px solid #666; |
|
height:60px; |
|
} |
|
</style> |
|
<script type=”text/javascript”> |
|
$(“#sopra”).hover( |
|
function () { |
|
$(this).text(“mouse siorar”); |
|
}, |
|
function () { |
|
$(this).text(“mouse fuori”); |
|
} |
|
); |
|
|
|
$(“#toggleclick”).toggle( |
|
function () { |
|
$(this).text(“1”); |
|
}, |
|
function () { |
|
$(this).text(“2”); |
|
}, |
|
function () { |
|
$(this).text(“3”); |
|
} |
|
); |
|
|
|
}); |
|
</script></head> |
|
<body> |
|
<h1>Esempi Eventi: metodi speciali</h1> |
|
<div id=”contenitore”> |
|
<div id=”sopra”> Passa qui sopra con il mouse…</div> |
|
<p> </p> |
|
<div id=”toggleclick”> Clicca qui più volte</div> |
|
</div> |
|
</body></html> |
E con questo esempio abbiamo concluso gli eventi con Jquery dal prossimo capitolo affronteremo il capitolo dei DOM.
Mi piace:
Mi piace Caricamento...
Correlati
Fabrizio S.
Share post:
Vediamo adesso come funziona Jquery in caso di eventi, ossia quando si verifica un evento che nel caso del WEB è tipicamente il CLIC su un pulsante o su un altro elemento della pagina, oppure quando si invia un modulo al server o cose del genere. Insomma come dice la parola stessa ogni qual volta che si verifica un evento. La sintassi in questo caso è un po’ la stessa per tutti prendiamo in esempio solamente il submit e le altre sono per esternsione
.sumbit( hadler(eventObject))
.submit([eventData], hadler(eventObject))
.submit([eventData], handlet (eventObject))
Dove
facciamo alcuni esempi per chiarire meglio
Nel caso volessimo applicare tale funzione a tutti gli elementi form presenti nella pagina dovremmo fare
$(“form”).submit(function(){
//codice
Prendiamo ora in esempio il click del mouse per quanto riguarda la propagazione degli eventi. Si prenda in considerazione il seguente codice
E impostiamo il gestore evento su <p> nel seguente modo
Facciamo adesso una grossa panoramica sull’oggetto event.
currentTarget Ritorna elemento DOM corrente nella propagazione dell’evento
data ci sono le informazioni passate al gestore dell’evento nel momento stesso in cui vi è stato associato
delegateTarget Ritorna l’elemento al quale è collegato il gestore d’evento attuale. Puo’ essere utilizzato per manipolare l’eleelmento che lo ha generato
isDefaultPrevented() Ritorna ture se è stato invocato il metodo preventDefault() su questo oggetto
isProgationStopped() Ritorna true se è stato invocato il metodo stopPropagtion() su questo oggetto
namespace Ritorna il namespace in fase di invio dell’evento
pageX Ritorna la posizione del mouse secondo la larghezza della pagina
pageY Ritorna la posizione del mouse secondo la lunghezza della pagina
preventDefault() impedisce che venga avviata l’azione di default
result ritorna l’ultimo valore invocato
stopPropagion impedisce la propagazione dell’evento
target per il target appunto dell’elemento evento insomma il suo contenuto
timestamp prende inizio dal 1 gennaio 1970 fino al momento in cui viene invocato con elementi in millesecondi.
Vediamo adesso i metodi che mette a disposizione JQUERY per operare nelle varie caselle di controllo tipicamente input
.blur() viene inviato a un elemento quanto questo perde il focus, swe avete presente il metodo nativo in javascript praticamente ha lo stesso funzionamento
.change() viene inviato a un elemento quaando cambia il suo valore
.focus() viene inviato quando questo elemento guadagna il cocus
.focusin() viene inviato quando un qualsiasi elemento invocato ottiene il focus quindi o l’elemento stesso o i suoi flgli
.focusout() Il contrario di focusin()
.select() L’evento select viene generato quando l’utente seleziona del testo ed è supportato solo per gli elementi <input type =”text”> e <textarea>
.submit() viene generato quando l’utente cerca di inviare un modulo. Puo’ essere associato solo a elementi di tipo <form>
Ora invece vi illustriamo i principali metodi in caso di evento da tastiera ossia quando un tasto viene premuto o rilasciato
.keydown() Collega un gestore all’evento keydown
.keypress() Collega un gestore all’evento keypress di Javascript
Mentre i piu’ importanti eventi del Mouse sono
.click() collega l’evento click nel mouse
.dclick() come sempre nel caso di doppio click
.mousedown() viene attivato quando l’utente si posizione con il mouse sopra un elemento e preme il mouse.
.mouseenter() viene inviato quando l’utente sposta il puntatore del mouse in modo che lasci l’eleemento.
.mousemove() viene inviato quando si posta il puntatore del mouse mentre questo è posizionato all’interno dell’elelemento
.mouseout() viene inviato quando l’utente sposta il puntatore del mouse al di fuori dell’eleemento
.mouseover() viene inviato quando l’utente sposa il puntatore del mouse al di fuori dell’elemento
.mouseup() viene inviato quando l’utente rilascia il tasto del mouse.
Vediamo adesso l’evento Hover che si verifica quando il puntatore del mouse viene posto su un elemento e ha la seguente sintassi
.hover( handlerIn(eventObject), handlerOur(eventObject) )
Dove
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
.hover( handlerInOut(eventObject))
Vediamo ora come e quali sono I metodi sul document
.load() viene inviato quando l’eelemento e i suoi elementi figli sono stati completamente caricabili
.ready() viene invocato quando la struttura e i DOM sono completamente caricati nella pagina web.
.unload() collega un gestore all’evento unload
Facciamo adesso un paio di esempi per meglio potere comprendere questa tecnologia
In questa maniera si associa all’elemento a l’attributo href e lo facciamo tramite la funzione bind. E se volessimo sapere realmente quale elemento abbiamo cliccato dovremmo fare
vediamo adesso un esempio con la funzione event e .type
in questa maniera possiamo intercettare l’evento click ossia pressione del mouse del tasto sinistro.
E una possibile implentazione di prevenDefault è la seguente
Ossia blocca l’evento associato di default e ne esegue un altro. Vediamo adesso un esempio piu’ concreto , ossia vediamo come sia semplice cambiare il background di una casella a cui abbiato dato il focus e conseguentemente lo abbiamo tolto all’adiacente.
Dove reset.css è
E base css è
Vi consigliamo di provarlo, come potete vedere non è nulla di particolarmente difficile. Invece se volessimo rimuovere queste associazioni che nella definizione abbiamo chiamato handler dobbiamo fare semplicemente il seguente
E ora vediamo un esempio con hover, toggle, che vi abbiamo spiegato prima, questo esempio non farà altro che provare se il mouse è dentro o meno una casella oppure se all’interno è stato digitato due volte il click.
E con questo esempio abbiamo concluso gli eventi con Jquery dal prossimo capitolo affronteremo il capitolo dei DOM.
Condividi:
Mi piace:
Correlati
Arriva il nuovo CMS e107 per fare siti web e blog
Arriva , anzi è gia’ arrivato e107 un CMS molto versatile. E’ sicuramente uno dei piu’ potenti che potete trovare oggi in circolazione. La sua interfaccia di amministrazione consente di. Leggi ancora…
Condividi:
Mi piace:
Continue Reading
La Mail server per la gestione della posta elettronica
Si tratta di un servizio di sistema operativo di rete installato in genere su una macchina dedicata, che gestisce l’invio e la ricezione dei messaggi di posta elettronica. Il Mail. Leggi ancora…
Condividi:
Mi piace:
Continue Reading