0

我有一个这样的jquery函数:

function get()
 {
$.ajax({
     url: 'get.php',
     success: function(data) {
     $('#get').html(data);
     $('#get').fadeIn(2000);
     setTimeout(posts,2000);
    }
    });
 }
 get();

当我单击网页中的某个元素时,我想停止此功能,我该怎么做。

谢谢

4

2 回答 2

3

为您的 AJAX 请求设置一个变量。

var getajax;

function get() {
    getajax = $.ajax({

     ......
    });
}

当你想中止它时,只需

getajax.abort();
于 2012-07-28T11:59:43.647 回答
0

在您可能无法全局定义所有.ajax()调用变量的情况下(如@uzyn的另一个答案所示),这可能是一个合适的解决方案。

你可以简单地success用一个标志来包装你的回调,指示你是否要取消结果。

var ajax_canceled = false;

function get(){
  $.ajax({
    url: 'get.php',
    success: function(data) {
      if (!ajax_canceled){
          //...
      }
    }
  });
}
get();

$("#cancel_ajax").on('click',function(){
  ajax_canceled = true;
});
于 2012-07-28T12:00:11.657 回答