• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Switch funktion funktioniert nicht

xeno

New member
Code:
  function weiter(){
            
            var expr = (1);
            //console.log(level); gibt sachen in console aus
            antwort = eingabe.value;
            out = '- ' + antwort + '<br>';
            
            
            
            //level(1);
        
            switch (expr) {
                case 1: level1();
                        break;
                case 2: level2();
                        break;
                case 3: level3();
                        break;
                case 4: level4();
                    break;
            }
            
             eingabe.value = '';
            ausgabe.innerHTML += '<br>' + out; //out += 'text' ist wie out = out + 'text' 
        }
        function level1(level){ 
            if(antwort == 'right'){
                out += "You choosed a good path! <br> What's your sex?";
                level = 1;
            }
            else if(antwort == 'left'){
                out += "You choosed a bad path! <br> What's your sex?";
                level = 1;
            }
            else{
                out += "I think you can't type!<br>Retry ;)";
            }
        }
        function level2() { //  Sex
            sex = antwort;
            if (antwort == 'male') {
                out += "Are you tryin' to kid me? <br> What's your name?";
                level = 2;
            }
            else if (antwort == 'female') {
                out += "And what a woman you are! <br> What's your name?";
                level = 2;
            }

Der Output stimmt nur bei case 1, wie leg ich den switch so fest das er auf alle levels greift?

Vielen Dank!
lg
Xeno
 
Zuletzt bearbeitet von einem Moderator:
Bist du sicher, dass expr ein integer ist?
Wenn nein, dann speicher expr als String und prüf ihn als String.
eine Normale Switch geht aber durch alle durch, also kann es meines Erachtens erstmal nicht an der switch selber liegen
was willst du denn genau machen? Wenn du die Funktion weiter aufrufst setzt du expr ja auf 1, also geht er immer auf level 1
 
Mea culpa, j-l-n :)
@Mpehiztopheles:
Der Switch soll eigentlich nur die verschiedenen Levels hintereinander aufrufen ..
 
direkt nacheinander?
Dann würde ich keinen Switch verwenden sondern einfach die Funktionen nacheinander aufrufen
ODER
um nach einer abgeschlossenen Aktion die nächste Funktion aufzurufen:
Code:
var step = 1;
function weiter() {[...]}
und in jeder function (level1,level2)
Code:
function level1() {
[...]
step ++;
}

Greetz
 
Du setzt doch expr fest auf 1. Dann kann doch auch nur der erste Level greifen. Oder testest Du es, indem Du im Skript den Wert änderst?
 
@Mpehiztopheles: Danke für den Tipp, probier ich gleich aus!
@Sempervivum: Wie könnt ichs denn gscheid machen mitm Switch?
 
Mir ist nicht ganz klar, was Du eigentlich vorhast. Wenn Du nur einfach die Funktionen nacheinander aufrufen willst, brauchst Du die Aufrufe doch nur hintereinander hinzuschreiben, so wie Mephiztopheles es schon vorgeschlagen hat:
Code:
level1();
level2();
level3();
level4();
Oder hast Du etwas anderes vor?
 
Zurück
Oben