2016-11-12 4 views
2

私たちは2つのjs fie、test-1.js、test-2.jsを持っています。

<script type="text/javascript" src="test-2.js"></script> 
<script type="text/javascript" src="test-1.js"></script> 

のコードは

$(document).ready(function(){ 
    function test_alert(){ alert("hiii"); } 
     }); 
テスト2.jsにおいて

$(document).ready(function(){ 
    function test_alert_2(){ 
      test_alert(); 
      alert("helloo"); 
     } 

     }); 

しかしtest_alert()試験2.jsに動作していない試験1.js。これを解決するには?なぜこれは動作していないのですか?私は

<script type="text/javascript" src="test-1.js"></script> 
<script type="text/javascript" src="test-2.js"></script> 

を並び替え、これを解決するために

は今も、それはworking.Iがdocument.ready()を削除することはできませんではありません。

だから私は(document.ready削除せずにソリューションを必要とする)

助けてください。

+0

は 'test_alert()'ですか? – mrid

+0

はい。それは働いています –

答えて

1

test-1.jsの前にtest-2.jsを呼び出します。

<script type="text/javascript" src="test-1.js"></script> 
<script type="text/javascript" src="test-2.js"></script> 
+0

私は質問を編集しました。 –

+0

$(document).ready(function(){})に関数を作成しないでください。それ以外の関数を作成し、関数を実行する場合は$(document)を実行します。準備完了(function(){ test_alert(); }); – shubham715

0

あなたはtest-2.jstest-1.jsからのコードを使用したい場合は、最初test-1.jsをロードする必要があります。 JavaScriptは同期コードに対して順次実行されます。そのコードがまだ実行されていない場合は、別のスコープ(たとえばファイル)からコードにアクセスすることはできません。

+0

私は質問を編集しました。 –

+0

を読んでください。あなたはファイルのコードを変更しました。これは技術的に*別の質問です... – Dymos

0

注文を正しく変更したが、スクリプトの内容も変更したため、この2番目の回答を追加しました。それらは両方とも関数を作成する$(document).ready(function() {...});を含んでいるため、作成する関数はその関数のスコープ内にのみ存在することを意味します。

function foo() { 
 
    return 1; 
 
} 
 

 
$(document).ready(function() { 
 
    // this is a new scope, functions created here will not be accessible outside of it. 
 
    function bar() { 
 
    return 2; 
 
    } 
 
}); 
 

 
foo(); // 1 
 
bar(); // Error: undefined is not a function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

ここでは、2つのJavaScriptファイルを持っていて、テスト1.js file.Your test_alert機能があるために動作していないに存在するテスト2.jsファイル内の関数を使用していますあなたはjsファイルが完全にロードされる前にfunctinを呼び出しました。ファイルの読み込み遅延のために、test_alert()は動作していません。

今、window.setTimeout()を使用してこの問題を解決できます。 のように: - このコードを

$(document).ready(function(){ 
    function test_alert_2(){ 
     window.setTimeout(function(){ 
      test_alert(); 
      alert("helloo"); 
     },1000); 

    } 

}); 

test_alertは()スクリプト負荷の1秒後に呼び出されます。 私はこれはあなたを助けるものです。

関連する問題