2016-04-05 19 views
0

Ich habe nach einer ähnlichen Frage/Antwort gesucht und habe keine gesehen. Entschuldigung im Voraus, wenn es sich um ein Duplikat handelt.Jquery Eingabe Text

Ich erstelle ein textbasiertes Spiel in JS. Dies ist mein erstes Mal, ein Projekt von Grund auf neu zu erstellen. Der gesamte Text passiert im #dialog-div und ich möchte, dass die Benutzereingabe der if-else-Funktion entspricht und Text für die neuen Optionen generiert.

Ich habe den ersten Übergang (der Text von Intro-Spiel ändert sich in den Text in Szene 1, wenn geklickt) arbeiten. Was nicht funktioniert, ist die Texteingabe für die Auswahl. Alles, was ich betrete, aktualisiert das Spiel. Ich habe auch eine Warnung ausgegeben, um es zu testen, und das läuft nicht.

Eine weitere Frage, die ich habe, ist, wenn die Variablen für die neuen Entscheidungen, die ich in die if/else-Anweisung gesetzt habe, als codiert ausgeführt werden oder wenn ich Änderungen vornehmen muss. Einige Optionen werden mehr als einmal auftreten, daher möchte ich, dass sie in mehreren Szenen ausgeführt wird.

HTML

<div id="dialog"> 
    </div> 
    <div class="form"> 
     <form id="my-form"> 
     <input type="text" id="userData" placeholder="enter move here"> 
     <button type="submit" class="btn">play</button> 
    </form> 
    </div>  

JS // Spiel Dialogfeld/fügt Absatz an die #dialog div // Benutzer Bewegung - Formulareingabe

var addParagraph = $('#dialog'); 
    var userMove = $("#userData").val(); 

// Intro Spiel Text

var introGame = $(function() { 
     $(addParagraph).append('<p> My Text.. </p>'); 
    }); 

// 1. Szene des Spiels. Der Spieler wählt 1,2 oder 3. Choice löst neuen Text im Dialogfeld und neue Set-Optionen oder Spielerergebnisse aus.

var scene1 = $(function() { 
    $(introGame).click(function() { 
    $(addParagraph).text('Move Question Text'); 
    $(addParagraph).append("<p> 1.Choice Description </p>"); 
    $(addParagraph).append("<p> 2.Choice Description </p>"); 
    $(addParagraph).append("<p> 3.Choice Description </p>"); 
    $(addParagraph).append("<p> Enter: 1, 2, or 3 below </p>"); 

    var playMove = function() { 
     $("#my-form").submit(function() { 
     var text = userMove; 
     var move = template(text); 

    if(text == '') { 
     return false; 
    } else if(text == '1') { 
    $(scene1).click(function() { 
     evasiveManuevers(); 
    }); 
    }else if(text == '2') { 
     $(scene1).click(function() { 
     lightSpeed(); 
     }); 
    } else if(text == '3') { 
     $(scene1).click(function() { 
     fightEnemy(); 
     }); 
    } else { 
      alert("Working!"); 
     }  
     }); 
     }; 
    }); 
    }); 

Vielen Dank im Voraus!

+0

Vor dem Einfügen eines Codes, bitte formatieren Sie es gut, das ist leicht verständlich. –

+0

Ich habe versucht, es leicht zu verstehen. Ich habe den Code in Blöcke geschrieben. Was hätte ich sonst noch tun sollen? Bitte vergib dies, da ich ein Anfänger bin. Basicall – TYPOI

+0

Ok danke für das Feedback. Ich habe versucht, es leicht verständlich zu machen. Ich stelle den Code in Blöcke mit einer Beschreibung dessen, was jede Funktion tut oder tun soll. Was hätte ich sonst noch tun sollen? Bitte verzeih, ich bin ein totaler Anfänger. Im Grunde funktioniert das Eingabetextformular nicht und die if else-Anweisung wird nicht ausgeführt.Ich versuche, diese Probleme zu beheben. – TYPOI

Antwort

0

Ich denke, was Sie falsch tun erwartet, dass diese

var userMove = $("#userData").val(); 

während des Spiels ändern. $("#userData").val() ist ein Wert, keine Funktion, so dass, wenn ich verstehe, was Sie richtig wollen, sollten Sie einen Getter wie diese

var getUserMove = function(){ $("#userData").val(); }; 

und verwenden Sie es als var text = getUserMove(); erstellen. Aber es ist nicht klar, wo Ihre

var addParagraph = $('#dialog'); 
var userMove = $("#userData").val(); 

Code ist (ist es in einigen Handler? Ich würde empfehlen, den gesamten Code als ein Skript zu zeigen, nicht trennen es in einigen Teilen).

+0

Ja, genau das versuche ich zu tun. Ich bin mir nicht sicher, wie der Code aussieht, um die Eingabe zu erhalten, und verwende sie dann in meinen if else-Anweisungen. Sorry für die Verwirrung, die addparagraph und userMove sind beide globale Variablen am Anfang des Programms deklariert. Der # Dialog ist der Ort, an dem der angehängte Text zu jeder Verschiebefunktion gehört. – TYPOI

0

Ich glaube nicht, dass Ihre IF-Anweisungen so laufen. Sie könnten Ihre IF-Bedingung Prüfung in Ihrem scene1 Klick-Funktion wie folgt tun:

$(scene1).click(function(){ 
    if(text == '1') { 
    evasiveManuevers(); 
    } else { 
    if(text == '2') { 
    lightSpeed(); 
    } else { 
     // etc 
    } 

})