Supponendo voglio solo collegare un semplice gestore di clic a un elemento, ho sempre fatto questo:Dovrei usare .on() o .click() per collegare un gestore di eventi?
$("#mydiv").click(function() { ... });
Guardando la documentazione JQuery, sembra che .on()
è il modo "raccomandato" per allegare i gestori di eventi e sostituisce .bind()
, .delegate()
e .live()
:
al jQuery 1.7, il metodo .on() fornisce tutta la funzionalità necessaria per il fissaggio gestori di eventi. Per assistenza nella conversione da vecchi metodi jQuery , vedere .bind(), .delegate() e .live().
E nella documentazione per .click()
si dice:
Questo metodo è una scorciatoia per .bind ('click', handler) nei primi due varianti, e .trigger ('click ') nel terzo.
Quindi questo implica che .click()
sta usando .bind()
che sarà deprecato e sostituito da .on()
, giusto? O è l'implicazione che .click()
rimarrà in giro, ma a un certo punto diventerà una scorciatoia per .on("click")
?
In sostanza, la mia domanda è questa ... Quando si scrive codice jQuery oggi, dovrei usare:
Variant 1: $("#mydiv").click(function() { ... });
o:
Variant 2: $("#mydiv").on("click", function() { ... });
?
Non devi preoccuparti del codice precedente, è altamente improbabile che rimuoveranno completamente la stenografia del clic. Il gestore .on() è solo un modo più efficiente di collegare i gestori di eventi, dall'essere in grado di collegare più gestori di eventi contemporaneamente, all'aggiunta di informazioni aggiuntive a un evento mappato! – Khez