Ist es besser, Funktionen mit onclick oder bind Events mit .click aufzurufen? [Duplikat]

8

Angenommen, ich habe ein div und möchte einen bestimmten Code ausführen, wenn ein Benutzer auf dieses div klickt. Ich kann das auf zwei Arten erreichen.

HTML

%Vor%

Javascript

%Vor%

Der zweite Weg ruft eine Funktion auf, die genau das tut, aber sie wird von einer Funktion

aufgerufen %Vor%

Javascript

%Vor%

Meine Frage ist, dass beide Codes dasselbe tun? und welches ist effizienter und empfohlen?

    
LoneWOLFs 28.02.2013, 07:34
quelle

3 Antworten

2

Es kommt darauf an. Wenn es etwas ganz Einfaches ist, benutze ich lieber onlick="".

Auf der anderen Seite, wenn es komplexer ist und Sie viel Code ausführen möchten, bevorzuge ich Bind-Ereignisse aus Gründen der Lesbarkeit.

Ich glaube ehrlich, dass onclick="" besser in Bezug auf Leistung / Speichernutzung usw. ist. Die Bindungsereignisse sind in der Ebene von jquery und mit onclick wird das Ereignis direkt von deinem Element aufgerufen.

Es ist eine Frage der Wahl, wirklich.

Etwas, was ich an Bindungsereignissen mag, ist, dass Sie endlose Möglichkeiten haben, wie Sie Klicks oder Tastenanschläge binden und erfassen können. Es gibt auch jquery plugins zur Verbesserung der Bindungsereignisse, wie Bindung mit Verzögerung usw. (Bindung mit Verzögerung erfolgt, wenn Sie eine Taste drücken und der Code x Sekunden nach dem Drücken ausgeführt wird, was beim Suchen während der Eingabe von Vorteil ist über Ajax, wie es eine Anfrage bei jedem Tastendruck verhindert)

Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Hoffe, ich gab dir einen guten Einblick:)

    
Oliver M Grech 28.02.2013 07:39
quelle
1

Die Verwendung von .click (function () {} ist besser, da es dem Standardregistrierungsmodell folgt.

Und hier dürfen Sie mehrere Rückrufe zuordnen,

EX:

%Vor%

Wenn Sie Ihre Klick-Funktion mit bind () verbinden, können Sie die jeweilige Funktion abhängig von der Anforderung lösen.

    
EnterJQ 28.02.2013 07:44
quelle
1

Es hängt davon ab, ob Sie bevorzugen:

1) Eine an das Dokument ready-Ereignis von JQuery gebundene anonyme Funktion

Was bedeutet, dass Ihr Namespace nicht mit einem anderen Funktionsnamen überladen ist, den Sie nicht interessieren. Es bedeutet auch, dass der Code zusammen mit dem Rest der Initialisierungsroutinen ist. Außerdem können Sie mehr als ein Ereignis binden.

2) Eine deklarative Art, eine benannte Funktion zu binden.

Was bedeutet, dass Ihre Funktion entsprechend benannt werden muss und Sie das Dokument durchsuchen müssen, um zu sehen, ob / wo es gebunden ist. Es ist auch ein weniger Selektor-Aufruf, also ist es natürlich effektiver.

Um Klarheit zu schaffen, rate ich Ihnen meistens, Ihren JavaScript-Initialisierungscode von Ihren HTML-Deklarationen zu trennen.

    
nurettin 28.02.2013 07:47
quelle