Ci sono molte risposte, ognuna toccando alcuni punti - si spera che questo possa darti la tua risposta, con una buona spiegazione di cosa è cosa e come usarlo.
Using click()è un alias per bind('click' ...). L'utilizzo bind()prende il DOM così com'è quando viene impostato il listener di eventi e associa la funzione a ciascuno degli elementi corrispondenti nel DOM. Vale a dire che se usi $('a').click(...)legherai la funzione fornita all'evento click di ogni anchor tag nel DOM trovato quando quel codice viene eseguito.
L'uso live()era il vecchio modo in jQuery; è stato utilizzato per legare eventi proprio come bind()fa, ma non si limita a legarli agli elementi nel DOM quando il codice viene eseguito, ma ascolta anche le modifiche nel DOM e vincolerà gli eventi anche a qualsiasi elemento con corrispondenza futura. Questo è utile se stai manipolando il DOM e hai bisogno che esista un evento su alcuni elementi che potrebbero essere rimossi / aggiornati / aggiunti al DOM in un secondo momento ma non esistono quando il DOM viene caricato per la prima volta.
Il motivo che live()ora è ammortizzato è perché è stato implementato male. Per live()poterlo utilizzare , devi essere in grado di selezionare almeno un elemento nel DOM inizialmente (credo). Ha anche causato l'esecuzione di una copia della funzione da associare a ciascun elemento e, se si hanno 1000 elementi, si tratta di molte funzioni copiate.
La creazione della on()funzione doveva superare questi problemi. Ti consente di associare un singolo listener di eventi a un oggetto che non cambierà nel DOM (quindi non puoi utilizzarlo on()su un elemento che verrà rimosso / aggiunto al DOM in un secondo momento, collegalo a un oggetto genitore) e applica semplicemente un elemento "filtro" in modo che la funzione venga eseguita solo quando viene aggiunta a un elemento che corrisponde al selettore. Ciò significa che hai solo una funzione esistente (non un mucchio di copie) associata a un singolo elemento: un approccio molto migliore per aggiungere eventi "live" nel DOM.
... e questo è ciò che sono le differenze, e perché ogni funzione esiste e perché live()è ammortizzata.
onaclickcausaclickdi un nome di funzione suona come un verbo, un'azione, quando ciò che fa è , non per fare clic sull'elemento (come si può anche fare con la stessaclickfunzione di)