2011-12-22 20 views
36

So che il metodo sostituisce live, delegate ecc. Ma è possibile utilizzarlo nei luoghi in cui si sta attualmente utilizzando l'evento click? Ad esempio su elementi che non sono generati dinamicamente.metodi jquery on vs click

risposta

28

Non specificamente vale sostituzione click(), come nella fonte jQuery converte tutti i gestori di eventi 'rapida' (come click(), keyup() ecc) per on("event", fn) comunque.

+2

Dalla documentazione: 'Esistono metodi abbreviati per alcuni eventi come .click() che possono essere utilizzati per collegare o attivare gestori di eventi. Per un elenco completo dei metodi abbreviati, consultare la categoria eventi. Quindi la risposta sarebbe no, proprio come @Rory sta dicendo che penso. –

+9

Proprio come non hai usato '.bind (" click ")' invece di '.click()' prima, non devi usare '.on (" click ")' invece di '.click() 'ora. –

+1

Ma il metodo shorthand .click() chiamerà .on() e quindi collegherà il gestore di eventi al livello root e la fase bubbling attraverserà tutta la struttura dall'elemento alla radice. Con .on() direttamente, puoi collegare il listener di eventi click al nodo genitore immediato e questo ridurrà la fase di bubbling ma, in caso di evento click, penso che sarà un improvviso piccolissimo. – Samuel