Globale Variable lässt sich nur 2x ändern
der_gretges
- javascript
0 Struppi
0 der_gretges0 Struppi
0 Der Martin
Hallo zusammen,
in meiner ausgelagerten *.js-Datei deklariere ich zwei globable Variablen:
x = "text1";
y = "text2";
Ich möchte mit 1 HTML-Seite 2 sehr ähnliche Workflows dokumentieren und per Button zwischen den beiden hin- und herschalten.
In meiner Funktion switch() werden dazu verschiedene Grafik- und Dateireferenzen geändert. Beispiel:
document.getElementById("Grafik").src = "img/Workflow_" + x + ".gif";
Am Ende der Funktion "lege ich den Schalter um":
x = y;
Das klappt dann 2x und danach wird (per Inputfeld-Ausgabe getestet) x nicht mehr geändert. Habe ich etwas falsch gemacht, oder muss ich den für x reservierten Speicher immer erst flushen? Wenn ja, wie geht das?
Danke im Voraus und Gruß,
Basti
x = y;
Das klappt dann 2x und danach wird (per Inputfeld-Ausgabe getestet) x nicht mehr geändert. Habe ich etwas falsch gemacht, oder muss ich den für x reservierten Speicher immer erst flushen? Wenn ja, wie geht das?
In JS gibt's nichts zu flushen.
Wenn x und y gleich sind kann sich x ja auch nicht mehr ändern.
Struppi.
Hi Struppi,
In JS gibt's nichts zu flushen.
Schonmal gut zu wissen! :-)
Wenn x und y gleich sind kann sich x ja auch nicht mehr ändern.
Dachte gerade, ich sei wirklich dämlich, bin aber nur nachlässig: am Anfang der switch()-Funktion wird bei x == y die (Hilfs-) Variable y auf "text1" gesetzt. Hatte vergessen dies zu erwähnen. (mea culpa...)
Vollständige Funktion also:
function switch() {
if ( x==y ) {
y = "text1";
}
[...]
x = y;
}
Gruß,
Basti
Wenn x und y gleich sind kann sich x ja auch nicht mehr ändern.
Dachte gerade, ich sei wirklich dämlich, bin aber nur nachlässig: am Anfang der switch()-Funktion wird bei x == y die (Hilfs-) Variable y auf "text1" gesetzt. Hatte vergessen dies zu erwähnen. (mea culpa...)
Das kommt aufs selbe raus, eine typische Variabeln switch Funktion sieht so aus:
var tmp = y;
y = x;
x = tmp;
Struppi.
Das kommt aufs selbe raus, eine typische Variabeln switch Funktion sieht so aus:
var tmp = y;
y = x;
x = tmp;Struppi.
(Ich muss lernen, mich genauer auszudrücken!)
Ich möchte nicht die Inhalte zweier Variablen vertauschen.
Ich habe eine Basis-Variable x, die den Wert "text1" annimmt. Dann schreibe ich meinen HTML-Code neu, indem ich statische Strings mit der Variable x kombiniere, z. B. mit
document.write("blabla" + x);
Am Ende der Funktion lade fülle ich meine Basis-Variable x mit dem Wert der Hilfs-Variablen y. Am Ende der Funktion ist also x == y. Wird die Funktion nun erneut aufgerufen, weil der Anwender wieder "zurückschalten" will, ändert sich wieder der HTML-Code, allerdings diesmal mit dem "neuen" Wert von x. Außerdem wird vor Ausführung des Funktions-Codes ( x == y ) abgefragt und bei true die Hilfs-Variable y mit dem anderen möglichen Wert gefüllt ( "text1" ). Danach sollte sich alles wiederholen. Tuts nur leider nicht.
Danke schonmal für die Brainpower!
Gruß,
Basti
Hallo Basti,
[...] am Anfang der switch()-Funktion ...
function switch()
das hast du nicht wirklich so in deinem Javascript-Code stehen?
Das kann unmöglich etwas anderes als eine Fehlermeldung produzieren, da switch ein reserviertes Keyword ist und nicht als Funktionsname verwendet werden kann.
So long,
Martin
[...] am Anfang der switch()-Funktion ...
function switch()das hast du nicht wirklich so in deinem Javascript-Code stehen?
Nein, hab ich nicht. Die Funktion heißt sw(). Ich habe hier nur der Übersichtlichkeit halber einen selbstsprechenden Namen angegeben.
Gruß,
Basti
P.S.: Man stelle sich vor, ich hätte zudem meine Variablen case, break oder default genannt... *g*