Uno dei punti forti della nuova versione di jQuery (la 1.7), pubblicato un paio di settimane fa’, sono le funzioni .on()
e .off()
, che mirano a unificare i diversi metodi che avevamo a disposizione per assegnare e rilasciare i gestori di eventi:.bind()
, .unbind()
, .delegate()
, .undelegate()
, .live()
e .die()
.
Usando jQuery .on() e .off()
⤽
Si dovrebbe usare da ora in poi questi nuovi paia di metodi, non solo perché semplificano l’API, ma perché è probabile che per le future versioni le altre funzioni scompariranno. Tanto, che se guardiamo il codice della nuova versione, vediamo che l’implementazione dei metodi antichi sono stati sostituiti dalle semplici chiamate
I nuovi metodi hanno la seguente sintassi:
Se non passiamo nessun selettore come parametro a
Quando un selettore viene passato come parametro, è simile a
L’utilizzo di
.on()
e .off()
.I nuovi metodi hanno la seguente sintassi:
$(elements).on(events [, selector] [, data], handler); $(elements).off(events [, selector], handler);
.on()
è simile a .bind()
, dove è sufficiente associare al gestore a degli elementi
. Questo è anche quello che fanno .click()
, .hover()
, .change()
, .submit()
e altre abbreviazioni.$('tr').on('click', evidenziare); $('tr').bind('click', evidenziare);
.delegate()
, dove viene aggiunto il gestore agli elementi, ma ciò che vediamo è se l’evento si è verificato nei discendenti filtrato con il selettore. Quando l’evento si verifica, controlla ognuno degli antenati nel DOM fino che non trova quello con il gestore appropriato. Il trattamento della gestione è poi delegata all’antenato, quindi il loro nome. Questo può essere utile, ad esempio, se abbiamo migliaia di righe: si può associare il gestore alla tabella, invece di dover fare su ognuno delle loro righe, che può essere estremamente lento.$('table').on('click', 'tr', evidenziare); $('table').delegate('click', 'tr', evidenziare);
.live()
, che è simile al .delegate()
, e anche se si utilizza document
come root non è raccomandato, perché l’evento dovrebbe percorrere tutti gli antenati fino a document
per trovare il gestore corretto, il che la rende molto più lenta quando la nostra gerarchia è molto profonda. E anche così , se vogliamo, la possiamo imitare:$(document).on('click', 'tr', evidenziare); $('tr').live('click', evidenziare);
Similari
⋮ Fondamentali di jQuery ⋮
JQuery ⊚
jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
⋮ Python per tutti ⋮
Python ⊚
Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
⋮ Estendere Google Analytics con jQuery ⋮
Plugins ⊚
Da un bel po’ di tempo Google Analytics ha aperto la strada per la raccolta gratuita di statistiche del traffico del proprio sito web. Sono sicuro che molti di voi abbiano installato il codice di Google sui vostri siti e a…
⋮ Guida allo Zend Framework ⋮
Zend ⊚
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …
⋮ Cos’è this? ⋮
JQuery ⊚
Uno degli aspetti più confusi di jQuery è come assegna l’ambito durante il callback. Deve essere parecchio confuso perché l’argomento genera un sacco di domande sulla mailing list di jQuery. Peccato, davvero, perché jQuery…

JQuery ⊚
jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
Python ⊚
Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
Plugins ⊚
Da un bel po’ di tempo Google Analytics ha aperto la strada per la raccolta gratuita di statistiche del traffico del proprio sito web. Sono sicuro che molti di voi abbiano installato il codice di Google sui vostri siti e a…

Zend ⊚
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …
JQuery ⊚
Uno degli aspetti più confusi di jQuery è come assegna l’ambito durante il callback. Deve essere parecchio confuso perché l’argomento genera un sacco di domande sulla mailing list di jQuery. Peccato, davvero, perché jQuery…
Some really nice and useful info on this site, too I believe the style has got great features.