2011-11-03 17 views

risposta

4

$(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.

2

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.

+0

È 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

+0

Certo, ma non con '.click()' che è stato specificamente menzionato! – JJJ

+0

Ah, questo è vero – JAAulde

0

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)

+0

suona un campanello ... – roselan

1

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.

2

$(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().

Problemi correlati