/ / Czy powinienem używać .on () lub .click (), aby dołączyć obsługę zdarzeń? - jquery

Czy powinienem używać .on () lub .click (), aby dołączyć obsługę zdarzenia? - jquery

Zakładając, że chcę tylko dołączyć prostą obsługę kliknięcia do elementu, zawsze to robiłem:

$("#mydiv").click(function() { ... });

Patrząc na dokumenty JQuery, wydaje się, że .on() to "zalecany" sposób dołączania procedur obsługi zdarzeń i zastępowania .bind(), .delegate() i .live():

Od wersji jQuery 1.7 metoda .on () zapewnia wszystkie wymagane funkcje do dołączania programów obsługi zdarzeń. Aby uzyskać pomoc w konwersji ze starszej jQuery metody zdarzeń, zobacz .bind (), .delegate () i .live ().

I w dokumentach dla .click() to mówi:

Ta metoda jest skrótem do .bind ("click", handler) w pierwszych dwóch odmianach i .trigger ("click") w trzeciej.

To implikuje to .click() jest używane .bind() która zostanie uznana za przestarzałą i zastąpiona przez .on(), dobrze? Czy to implikacja tego .click() będzie się trzymać, ale w pewnym momencie stanie się skrótem .on("click")?

Zasadniczo, moje pytanie jest to ... Kiedy piszę dzisiaj kod JQuery, powinienem użyć:

Variant 1: $("#mydiv").click(function() { ... });

lub:

Variant 2: $("#mydiv").on("click", function() { ... });

?

Odpowiedzi:

4 dla odpowiedzi № 1

Osobiście użyłbym on() dla wszystkich powiązań zdarzeń z jQuery 1.7+.

Oznacza to, że nie ma dwuznaczności między elementami, które są dodawane dynamicznie, a tymi dostępnymi przy ładowaniu strony.

Ponadto, jak państwo stwierdzacie, click() (i inne skróty do zdarzeń) są konwertowane na on("event", function() { ... }); przez jQuery, tak więc oszczędza on kroku w procesie - nie, że robi to zauważalną różnicę oczywiście.

I w końcu, on("click") brzmi lepiej według mnie.