2017-01-26 25 views
0

私はあなたが私を助けることができる私のグローバル変数に問題がありました。JavaScriptの結果のグローバル変数は、常に定義されていません

私は今、私はこのラインで同じ$(ドキュメント).ready(関数()グローバル変数を使用するJavaScript

$(document).ready(function() { 
     var correctAnswer; 
     var subId; 

     $(".subject").click(function() { 
      subId = ($(this).attr('id')); //passed the id variable into the global variable 
      alert(subId) // when I alert this it returns the value 
     }); 

click()することにより、このラインで私のIDを渡され、その行から今

<li> 
<a href="<?php echo site_url("adminController/questionAdd/".$row->subjectid); ?>" id="<?php echo $row->subjectid; ?>" class="subject">Add Question</a> 
</li> 

$('#form-user').submit(function(e){ 
       e.preventDefault(); 

       var me = $(this); 
       var correct = correctAnswer; 
       var passedSubId = subId; // passed the global variable to this local variable 
       console.log(correct); // this is okey 
       console.log(subId); // this is undefined 
}); 

結果

i 
undefined 
+0

を行ってみたい方法です

$(document).ready(function() { var correctAnswer; var subId; $(".subject").click(function() { subId = ($(this).attr('id')); //passed the id variable into the global variable alert(subId) // when I alert this it returns the value localStorage.setItem('subId', subId); console.log('id stored'); }); $('#form-user').submit(function(e){ e.preventDefault(); var me = $(this); var correct = correctAnswer; var passedSubId = subId; // passed the global variable to this local variable console.log(correct); // this is okey console.log(subId); // this is undefined storedSubId = localStorage.getItem('subId'); alert(storedSubId); console.log('stored id'); }); }); 

:あなたはURLからそのIDを取る(その存在)またはlocal storage、例えば、それを保存し、これを試してみどちらかだろう あなたは '文書準備'と 'フォーム提出'を正しく閉じましたか? –

+0

ご回答いただきありがとうございます。はい私はそれを正しく閉じました。 –

答えて

0

あなたのコードは動作しません。

そこで何をしているのですか?私はリンクをクリックしてページAからページBに移動し、ページBのページAに設定した変数を使用したいと思いますが、あなたのページをリフレッシュするときにスクリプト全体が再び実行され、前のページで何をしたのかわからない場合は、とにかくURLからそれを得ることは間違いなくあなたが

+1

あなたの応答のおかげでありがとう、それはまさに私のコードの問題です。私は先週それをすでに修正しました。しかし、本当にありがとうございます。どうもありがとうございました。 –

1

グローバル変数を宣言するのにwindowを使用できますが、使用しないことを強くお勧めしますが、です。

あなたは、このようにグローバル変数を宣言することができます:あなたはそれをすると思うよう

window.yourVariable = "something"; 
+0

あなたの返事に感謝しますが、私はそれを試して、それは動作しません。 –

+0

@JohnHoraアラートを作成する場所で 'window.subId = subId'を試しましたか? –

+0

グローバル変数を 'windows.subId'に宣言すると問題が発生し、' Uncaught ReferenceError:subId is not defined'となってしまいます。 –

関連する問題