Non capisco il motivo per cui questo metodo esiste ....jQuery 1.7 .on() metodo, perché è necessario?
Mi sembra che ci si sempre basta fare $(el).click()
invece di $(el).on('click', function...
Non capisco il motivo per cui questo metodo esiste ....jQuery 1.7 .on() metodo, perché è necessario?
Mi sembra che ci si sempre basta fare $(el).click()
invece di $(el).on('click', function...
$(el).on
offre agli sviluppatori un modo unificato di associare eventi per qualsiasi tipo di evento, eventi diretti e delegati. Consente inoltre di associare più di un evento contemporaneamente passando un oggetto (2 ° esempio nello documentation)
È inoltre possibile salvare alcune sequenze di tasti, per quello che vale.
Con .on()
è possibile associare più di un tipo di evento allo stesso tempo, quindi non devi duplicare il codice o creare una funzione separata se vuoi fare la stessa cosa su più eventi.
Mi sembra che sia stato organizzato per combinare/sostituire le varie altre funzioni di associazione degli eventi ... Una funzione per vincolarli tutti! (LOTR geekery ftw)
suona un campanello ... – roselan
E 'la mia comprensione che il nuovo .on()
è una fusione di funzionalità un po' duplicato nel .bind()
, .delegate()
e .live()
. È tanto una fusione dell'API quanto una combinazione delle implementazioni in un'implementazione più unificata.
$(el).click(...)
è abbreviazione di $(el).bind('click', ...)
. Se confronti lo documentation for bind()
con lo documentation for on()
, vedrai una serie di differenze.
Questo è abbastanza ben sintetizzato dal primo paragrafo delle bind()
documenti:
Al jQuery 1.7, il metodo .on() è il metodo preferito per il fissaggio gestori di eventi a un documento. Per le versioni precedenti, il metodo .bind() viene utilizzato per allegare un gestore eventi direttamente agli elementi . I gestori sono collegati agli elementi attualmente selezionati in l'oggetto jQuery, quindi tali elementi devono esistere nel momento in cui si verifica la chiamata a .bind(). Per un binding di eventi più flessibile, consultare la discussione della delega degli eventi in .on() o .delegate().
È possibile associare una singola funzione a più di un tipo di evento con le altre funzioni. Questa è una unificazione della gestione degli eventi, e consente anche di assegnare più di una funzione a più di un evento tramite la mappatura. – JAAulde
Certo, ma non con '.click()' che è stato specificamente menzionato! – JJJ
Ah, questo è vero – JAAulde