0

以下の機能を実装したい。

2つのJquery.jsファイルがあります。どちらも1つのHTMLファイルにインポートされ、ajax機能を使用しています。First.jsには、json応答を取得するajax関数があります。サービスが成功した場合、Second.jsにある別のajax呼び出しを呼び出す必要があります

Test.Html

<!DOCTYPE html>
 <html>
   <head>
     <meta charset="ISO-8859-1">
      <title>Insert title here</title>          
      <script type="text/javascript" src='js/jquery.js'></script>
      <script type="text/javascript" src="js/test.js"></script>
      <script type="text/javascript" src="js/test1.js"></script>
   </head>
    <body>  
     <div class="ui-body">
      <fieldset class="ui-grid-a">                          
         <div id="buttondiv" class="ui-block-a"><a data-role="button" id="loginbtn" data-theme="b">Login</a></div>
         <div id="loading" style="display:none"><img src='css/images/demo_wait.gif' /></div>                                         
    </fieldset>
  </div>
</body>
</html>

最初の.js

  $(document).ready(function(){
     $.ajax({
           .
           .
           .            
            success:function(data){ 
                 Successcall();
            },
           error:function(xhr){ 
                  alert("Error");
            }
      });
 });

Second.js

  $(document).ready(function(){

 function Successcall(){
         $.ajax({
           .
           .
           .            
            success:function(data){ 
                 alert("In Second JS");
            },
           error:function(xhr){ 
                  alert("Error");
            }
      });
      }
 });

Successcall()を呼び出すことができません。Second.jsの関数

誰かがこれについて私を助けることができますか?

4

3 に答える 3

0

で、ラッパー Second.jsを削除します。アクセスするには、関数が外部にある必要があります$(document).readySuccesscall()document ready

 function Successcall(){
         $.ajax({
           .
           .
           .            
            success:function(data){ 
                 alert("In Second JS");
            },
           error:function(xhr){ 
                  alert("Error");
            }
      });
      }

また、first.jsの前にsecond.jsを最初にロードします

于 2012-09-17T06:14:28.697 に答える
0

まず、ajax呼び出しの成功メソッドを確認します。
アラート機能を次のように配置します

success:function(data){ 
                 **alert("Got success");**
                 Successcall();
        }

上記のコードが正常に機能しているにもかかわらず、Successcall()を呼び出さない場合。関数の場合、 Successcall();
を配置できます。レディ機能の外

于 2012-09-17T06:32:08.820 に答える
0

Second.jsのSuccesscall関数は、$(document).ready()関数スコープ内に含まれているため、First.jsのスコープ外です。

Muthu Kumaranのソリューションは、Successcall関数をグローバルオブジェクトにアタッチします。これは機能しますが、非常に面倒なIMHOです。

おそらくこれはより良いでしょう(これをSecond.jsに入れてください)

var my_functions = {};
my_functions.Successcall = function() {
  // do something
};

次に、First.jsからmy_functions.Successcall()を呼び出します。このようにして、グローバルオブジェクトに関数をアタッチすることを回避します。

于 2012-09-17T06:19:50.257 に答える