jQuery make globale Variable

7

So übergeben Sie die Funktion a_href = $(this).attr('href'); value an global a_href , machen Sie a_href="home"

%Vor%     
olo 25.09.2013, 03:22
quelle

3 Antworten

24

Ihr Code sieht gut aus, außer der Möglichkeit, dass, wenn die Variablendeklaration innerhalb eines dom-Lesehandlers ist, es keine globale Variable sein wird ... es wird eine Abschlussvariable sein

%Vor%

Um die Variable global zu machen, besteht eine Lösung darin, die Variable im globalen Gültigkeitsbereich zu deklarieren

%Vor%

ein anderer ist, die Variable als eine Eigenschaft des Fensterobjekts zu setzen

%Vor%

Warum das Drucken von Konsolen undefiniert ist

Sie erhalten die Ausgabe als undefined , denn obwohl die Variable deklariert ist, haben Sie sie nicht mit einem Wert initialisiert, der Wert der Variablen wird erst gesetzt, nachdem auf das Element a geklickt wurde wird den Wert undefined haben. Wenn Sie die Variable nicht deklarieren, wird ein ReferenceError

    
Arun P Johny 25.09.2013, 03:25
quelle
1

Sie können die Deklaration globaler Variablen vermeiden, indem Sie sie direkt zum globalen Objekt hinzufügen:

%Vor%

Ein Nachteil dieser Methode ist, dass globa.varName nicht existiert, bis diese Codezeile ausgeführt wird, aber das kann leicht umgangen werden.

Sie können auch eine Anwendungsarchitektur in Betracht ziehen, in der solche Globals in einer für alle Funktionen gemeinsamen Schließung enthalten sind oder als Eigenschaften eines geeignet zugänglichen Datenspeicherobjekts.

    
RobG 25.09.2013 03:55
quelle
0

setze die Variable auf window:

%Vor%     
gp. 25.09.2013 03:25
quelle

Tags und Links