2

私はそうしようとしていますbreak/応答がnullreturn falseの場合、そうすることによって:$.post()

....

$('#order_list li > div').remove(); // is to remove `no_data` or `search_box` when clicking on the next `li`

$.post('do.php', { OP: "news_search", category: cat_id },
  function(data_response){
    console.log(data_response); //outputs null if nothing retrieved, or data if otherwise 
    if(data_response==null) //stop code if the response is null
    {
      alert('if works');
      $(this).append(no_data).show('slow');
      return false; // doesn't do the trick
    }
  }, "json");

//if not null, continue with this

if( ! $('.search_box').exists())
{
  $(this).append(search_box).show('slow');
}

....

しかし、あなたが読むことができるように、私のコードはうまくいきません。何か案は?

アップデート

if(data_response==null)作品、それはreturn falseその仕事をしないものです

4

3 に答える 3

3

AJAXのAは非同期用です。

確認したいところまで来たら、もう実行済みです。

まず、次のコードを実行します。

$.post('do.php', { OP: "news_search", category: cat_id }, callback, "json");

これにより、サーバーにXmlHttpRequestが発行されます。callback関数はパラメーターとして渡されるだけなので、意図的にのみ記述しました。サーバーが応答したときにのみ実行されます。その時点で、コードの他の部分はすでに実行されています。

  1. $.post()-サーバーへの呼び出し
  2. コードの残りの部分
  3. サーバーが応答すると、コールバック
于 2012-05-17T16:07:36.430 に答える
1
$.post('do.php', { OP: "news_search", category: cat_id },
  function(data_response){
    console.log(data_response);  
    if(data_response)
    {
      $(this).append(no_data).show('slow');
       // return false; NOT NEEDED
    } else {
      // below condition should remain here, not outside of Ajax
      if( ! $('.search_box').exists()){
        $(this).append(search_box).show('slow');
      }
    }
  }, "json");
于 2012-05-17T16:10:10.217 に答える
0

人々は通常、次のことを確認します。

if (foo == null) {
   foo = "Joe";
}

彼らが本当に意味するのは

if (!foo) {
   foo = "Joe";
}

nullはオブジェクトであり、==は型強制を行うためです。

この記事の詳細:JavaScript未定義とnull

于 2012-05-17T16:28:34.937 に答える