2

ajaxStartを使用して、特定のイベントの関数をバインドするにはどうすればよいですか?

$(document).ajaxStart(function () {
  alert("started");
});
$(document).ajaxStop(function () {
  alert("Ended");
});

このコードを試しましたが、オートコンプリートが開始されるたびに実行されます。

シナリオは次のようにする必要があります。フォームを送信するたびに、その関数が呼び出されます。しかし、ajaxを介してオートコンプリートを使用して値をフェッチしているだけで、ajaxStart呼び出さajaxStopれるべきではない場合。

4

3 に答える 3

3

ただし、ajaxを介してオートコンプリートを使用して値をフェッチしている場合は、ajaxStartとajaxStopを呼び出さないでください。

ブール変数を作成して、ユーザーが次のように入力しているかどうかを追跡できます。

<script>
var isTyping = false;

// inside your autocomplete handler set isTyping to true

$(document).ajaxStart(function(){
    if (! isTyping) alert("started");
});
$(document).ajaxStop(function(){
    if (! isTyping) alert("Ended");
});

</script>
于 2012-06-13T07:58:51.343 に答える
2

メイン関数とサブ関数を使用する方が良いでしょう。

$.ajax({
 url: 'url_to_page'
 beforeSend: function(req){ //Before the request is taking off},
 error: function(req){ //If there were a error},
 success: function(req){ //When it all was done}
});
于 2012-06-13T07:58:51.623 に答える
1
 $.ajax({
      url :'your url',
      data: {
           //data to send if any
      },
      type: 'POST',
      success:function(msg){
           //eqv to ajaxstop if OK
      },
      beforeSend:function(){
           //before ajax starts
      },
      error:function(){
           //failure in ajax
      }
 });
于 2012-06-13T07:54:41.717 に答える