2016-04-05 7 views
0

私は同様の質問/回答を探していて、見たことがありませんでした。これが重複している場合は、事前にお詫び申し上げます。Jquery Input Text

私はJSでテキストベースのゲームを作成しています。これは初めてのプロジェクトの作成です。すべてのテキストは#dialog divで発生し、if-else関数の選択肢に対応し、新しいオプションのテキストを生成するユーザー入力が必要です。

私は、最初のトランジション(イントロゲームのテキストは、シーン1のテキストをクリックすると変化します)が働いています。機能していないのは、選択項目の選択入力です。私が入力したものはゲームをリフレッシュします。私もそれをテストするための警告を入れ、それは実行されません。

私が持っているもう1つの質問は、if/else文に入れた新しい選択肢の変数がコード化された形で実行されるか、変更が必要な場合です。いくつかのオプションが複数回出現するので、複数のシーンの中から実行することができます。

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は //ゲーム]ダイアログボックス/ #dialog divの //ユーザ移動に段落を追加する - フォーム入力

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

//イントロゲームテキスト

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

//ゲームの第1シーン。プレイヤーは1,2または3を選択します。選択すると、ダイアログボックスの新しいテキストと新しいセットの選択、またはプレイヤーの結果がトリガーされます。

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!"); 
     }  
     }); 
     }; 
    }); 
    }); 

ありがとうございます!

+0

コードを貼り付ける前に、わかりやすく書式を整えてください。 –

+0

わかりやすくしました。コードをブロックに入れました。ほかに何をすべきですか?私は初心者なので、これを許してください。 Basicall – TYPOI

+0

フィードバックありがとうございました。私は理解しやすくしようとしました。私は、各機能が何をしているのか、何をするのかを記述したコードをブロックに入れました。ほかに何をすべきですか?私が初心者であることを許してください。基本的には、入力テキスト形式は機能せず、if else文は実行されません。私はこれらの問題を解決しようとしています。 – TYPOI

答えて

0

私はあなたが間違って何をしているかと思います。この

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

は、ゲーム中に変更されることを期待しています。 $("#userData").val()は値が、関数ではなく、私はあなたが正しく欲しいものを理解していれば、あなたはこの

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

のようなゲッターを作成し、var text = getUserMove();としてそれを使用する必要があります。しかし、あなたの

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

コードがどこにあるか、それははっきりしていないこと(それはいくつかのハンドラ内である?私はいくつかの部分にそれを分離しないで、1つのスクリプトとして全体のコードを表示するようにお勧めします)。

+0

はい、まさに私がやろうとしていることです。私は、入力を取得し、それを私のif elseステートメントで使用するコードがどのように見えるか分からなかった。混乱して申し訳ありませんが、addParagraphとuserMoveは両方ともプログラムの先頭で宣言されたグローバル変数です。 #dialogは、追加されたテキストが各移動機能に対応する場所です。 – TYPOI

0

私はあなたのIF文がそのように実行されるとは思わない。あなたはこのようなあなたのSCENE1のクリック機能の内側にあなたのIF条件のテストを行うことができます:

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

})