0

我已经实现了:

$('#loader').hide()  // hide it initially
.ajaxStart(function() {
                        $('#loader').show();
                      })
.ajaxStop(function() {
                        $('#loader').hide();
                     });

当我使用 ajax 方法时,这工作得很好。但我希望能够在这种情况下禁用 ajax 加载器。

    setInterval(function(){
      //I need to disable loader in here
    $.ajax({
            type: "POST",
            url: "live_top_5.php",
            dataType: 'json',
            cache: false,
            success: function(response) 
            {
                               //do something
            }
            });     
},10000);

问题是我的加载器正在覆盖全屏,我想为这个特定的 ajax 调用禁用它,因为我每 10 秒刷新一次这个内容。那可能吗?为某些 ajax 调用禁用 ajax 加载器?

4

2 回答 2

3

您有一个选项,请查看此附加说明:

如果在全局选项设置为 false 的情况下调用 $.ajax() 或 $.ajaxSetup(),则不会触发 .ajaxStart() 方法。

http://api.jquery.com/ajaxStart/

编辑:在不应触发事件的调用上添加全局参数

   $.ajax({
            type: "POST",
            url: "live_top_5.php",
            dataType: 'json',
            cache: false,
            global: false,
            success: function(response) 
            {
                               //do something
            }
            });    
于 2013-05-24T12:34:18.697 回答
0

用这个 -

   setInterval(function(){
  setTimeout((function(){ $('#loader').hide();}),200);
$.ajax({
        type: "POST",
        url: "live_top_5.php",
        dataType: 'json',
        cache: false,
        success: function(response) 
        {
                           //do something
        }
        });     
},10000);

或者您可以在初始化中使用该标志

var allowed = true;
$('#loader').hide()  // hide it initially
.ajaxStart(function() {
                  if(allowed)  $('#loader').show();
                  })
.ajaxStop(function() {
                    $('#loader').hide();
                 });

并在ajax中检查

  setInterval(function(){
  allowed = false;
   $.ajax({
        type: "POST",
        url: "live_top_5.php",
        dataType: 'json',
        cache: false,
        success: function(response) 
        {
                 allowed = true;          //do something
        }
        });     
   },10000);
于 2013-05-24T12:33:40.157 回答