/ / Sollte ich .on () oder .click () verwenden, um einen Event-Handler anzuhängen? - Jquery

Sollte ich .on () oder .click () verwenden, um einen Event-Handler anzuhängen? - Jquery

Angenommen, ich möchte einfach einen einfachen Click-Handler an ein Element anhängen, habe ich das immer getan:

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

Betrachtet man die JQuery-Dokumente, scheint es so .on() ist die "empfohlene" Methode, Ereignishandler anzuhängen und zu ersetzen .bind(), .delegate() und .live():

Ab jQuery 1.7 bietet die .on () -Methode alle erforderlichen Funktionen zum Anhängen von Ereignishandlern. Für Hilfe bei der Konvertierung von älteren jQuery Ereignismethoden, siehe .bind (), .delegate () und .live ().

Und in den Unterlagen für .click() es sagt:

Diese Methode ist eine Abkürzung für .bind ("click", handler) in den ersten beiden Varianten und .trigger ("click") in der dritten Variante.

Das bedeutet also, dass .click() benutzt .bind() welches veraltet und durch ersetzt wird .on(), Recht? Oder ist die Implikation das? .click() wird bleiben, aber es wird irgendwann zu einer Abkürzung für .on("click")?

Grundsätzlich ist meine Frage das ... Wenn ich heute JQuery-Code schreibe, sollte ich Folgendes verwenden:

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

oder:

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

?

Antworten:

4 für die Antwort № 1

Persönlich würde ich verwenden on() für alle Event-Bindungen von jQuery 1.7+.

Es bedeutet, dass es keine Mehrdeutigkeit zwischen Elementen gibt, die dynamisch hinzugefügt werden, und solchen, die beim Laden der Seite verfügbar sind.

Auch, wie Sie sagen, click() (und andere Ereignisverknüpfungen) werden in konvertiert on("event", function() { ... }); von jQuery trotzdem, so spart es einen Schritt im Prozess - nicht, dass dies natürlich einen spürbaren Unterschied macht.

Und schlussendlich, on("click") liest meiner Meinung nach besser.