2016-12-25 22 views
0

これにはまったく新しいものです。私はそれに3つのajax関数を持つ "getInformation"と呼ばれる関数を持っています。Jqueryでif文が失敗した場合の関数の呼び出し

ここに示されている成功関数で失敗した場合、 "getInformation"関数を呼び出す/トリガしたいですが、セレクタを使用するセレクタがわかりません。

success: function(serverResponse){ 
      if(serverResponse.length>1){ 
       try{ 
        var searchResultsHTML=''; 
        console.log(serverResponse); 

        $("#searchResults").append(searchResultsHTML); 
       }catch (ex) { 
         console.error(ex); 
         $("#searchResults").text("An error occurred processing the data"); 
       } 
      } else{ 
        //run the other ajax calls 
        $.fn.getInfortmation(); 
      } 
+0

'getInformation'関数は、要素操作関数または通常関数に関連しています。それが通常の関数であれば 'callback'アプローチまたは' promise'アプローチを使用してください。また、ここでもgetInformation関数を追加することができます。 –

+0

何が問題なのですか?名前のスペルが間違っていますが、あなたはすでにその関数を呼び出しています。 – Pointy

+0

どのように関数を宣言しているのか分かりませんが、 '$ .fn.'が必要ではないと思っています。単に' getInformation() 'を呼び出してください。 – Taki

答えて

0

jQueryの$の意味を誤解している可能性があります。これは実際には、ライブラリ内のすべての関数を含むクラス(またはJS相当のホルダ)であるjQueryという単語の略称または別名です。

jQueryコールバック(successハンドラ)内にコードを記述しているという理由だけで、jQuery関数を使用する必要はありません。あなた自身のコードを自由に使用することができ、私はgetInformationがあなたの定義された機能の1つであると信じています。

問題を解決するには、jQuery $のような関数をfn.getInformationのように呼び出します。私はあなたの機能がfnと呼ばれる別のオブジェクトの中にあると仮定します。そうでない場合は、fnも削除してください。

セレクタについては、別のトピックです。それらは、コード内のページ上のHTML要素を簡単に選択して操作するために使用されます。 jQueryはこれを行うのに非常に便利ですが、すべてのjQuery関数がセレクタ/ DOMを必要とするわけではありません。たとえば、この場合は、ページ要素を操作することとは直接関係のないAJAXを実行している可能性がありますが、むしろサーバーにデータを通信することです。

関連する問題