2017-06-08 10 views
2

シンプルなもの!! asp.net- MVCプロジェクトで。私はボタンを持っています。私は外部のjavascriptファイルmydata.jsを持っています。そのファイルにはcheckJS()という関数が含まれています。javascript関数が応答しない

function checkJs() 
{ 
    debugger; 
    alert("your output!!!"); 
} 

マイコード:

<div id="mydivid" style="background-color:lightblue;"> 
    STAGE 
</div> 
<input type="button" id="btnid" value="Load Data" /> 

私はボタンをクリックして、そのちょうどjQueryのクリック機能を呼び出す

$(document).ready(function() { 
    $("#btnid").click(function (event) { 
     debugger; 
     $.getScript('mydata.js', function() { 
     // debugger; 
      checkJs(); 
     }); 

    }); 
}); 

私はで初期状態の頭の中でライブラリファイルを1.12.4.js使用タグ
と私はヘッドタグで私の外部jsファイルを追加しました。

私のコードで何が問題ですか?ボタンクリックが外部メソッドに達していない理由

+0

'debugger'はヒットしますか? – haim770

+0

外部jsファイルの@ haim770デバッガがヒットしません。 – User6667769

答えて

2

1.Make確認してください。

あなたが以下のように行う最初の点を確認してください -

$(document).ready(function() { 
    $("#btnid").click(function (event) { 
     checkJs(); 
    }); 
}); 

をご$.getScript()を使用したい2.Ifはその後、以下のようにします: -

$(document).ready(function() { 
    $("#btnid").click(function (event) { 
     $.getScript('mydata.js').done(function(data, textStatus) { // check the file path of mydata.js is correct or not? 
     checkJs(); 
     }); 
    }); 
}); 

上記のコードは、ときにのみ動作しますこのコードの前にjQueryライブラリを追加し、外部JavaScriptファイルパスを頭から削除します。

注: -

データは: - 外部スクリプト

textStatusからデータが返されました: - などの外部スクリプト(プレーンテキストへの呼び出しの状況"成功")

詳細については、このリンク: - jQuery.getScript()

+0

ちょっとあなたのコードは素敵でシンプルです。私はその仕事を知っています。しかし、私のことはこの '' mgetata.js '、function(){ //デバッガ; checkJs(); }); 'このように呼び出す必要があります。それは私のコードの間違いです。 – User6667769

+0

あなたは '(script、textstatus)'の使用を教えてください。 – User6667769

+0

@ User6667769あなたを助けてうれしい:) :) :) –

2

あなたが頭の中でmydata.jsをすでに含まれている場合は、直接getScriptせずに関数を呼び出すことができます。

getScriptで正しいパスを指定していることを確認してください。コールバックにjsをロードしていない場合は、コールがfailコールバックに送信されているかどうかを確認してください。

$(document).ready(function() { 
    $("#btnid").click(function (event) { 
     debugger; 

     $.getScript('mydata.js').done(function(data, textStatus, jqxhr) { 
      checkJs(); 
     }).fail(function(){ 
      if(arguments[0].readyState==0){ 
      //script failed to load 
      }else{ 
      //script loaded but failed to parse 
      alert(arguments[2].toString()); 
      } 
     }) 
    }); 
}); 

完了コールバックには、次の値を持つ3つのパラメータがあります。

  1. データ:(スクリプト)
  2. textStatus返されたデータを有している:それは、例えば、プレーンテキストでステータスを返します「成功」
  3. jqxhr:そのjqXHRオブジェクト、XMLHTTPRequestオブジェクトのスーパーセットであるとステータスコードを返す「状態」プロパティがあります。 jQueryライブラリがあなたの外部Javaスクリプトファイルの前に追加したことを
+0

ちょっと '$ .getScript( '/ Scripts/jsondata.js'、function(script、textStatus)){ //デバッガ; checkJs(); }); ( '/Scripts/jsondata.js'、function(jd){ //デバッガ; checkJs(); });「メソッドのパラメータをいくつか追加しました。 '(script、textstatus)' of – User6667769

+0

実際にあなたのコードは私のために働きます。私は元のコードを意味します。あなたの編集の前に – User6667769

+0

あなたの貴重な返事の友達に感謝! – User6667769

関連する問題