2013-03-14 20 views
0

我必須顯示我使用谷歌分析的瀏覽量。下面是HTML在那裏我將展示頁面訪問量從ajax獲取json時顯示/隱藏範圍

Pageviews: <span id="pageViews"></span> 
      <span id="loadingGA"> 
       <img height="12" alt="Loading..." src="../jsonData/images/waiting_icon.gif"> 
      </span> 

所以你看,我有兩個橫跨一個顯示的頁面查看次數whiel另一種是用於顯示,直到頁面瀏覽量加載圖標被取出。 我現在用的方法是:

$("#loadingGA").hide() 
    .ajaxStart(function() { 
     $(this).show(); 
    }).ajaxStop(function() { 
     $(this).hide(); 
     $("#pageViews").show(); 
    }); 

,下面將我如何獲取的頁面訪問量

function setPageviewsCount(url, displayId) { 
var pageViews = "0"; 
$.getJSON(url, function(googleAnaltyicsData) { 
    $.each(googleAnaltyicsData, function(i, gaData) { 
     if(!jQuery.isEmptyObject(gaData)) { 
      pageViews = gaData.PageViews; 
     } 
    }); 
    $(displayId).html(pageViews); 
});} 

的問題是,一切工作正常,但即使在加載圖標不消失頁面視圖被加載。試過每一件可能的事情。請指導。 謝謝!

+1

你有一個鏈接到一個網站,或在的jsfiddle的例子嗎? – 2013-03-14 10:33:30

+0

你能發佈你的全球ajax選項嗎? '如果在全局選項設置爲false的情況下調用$ .ajax()或$ .ajaxSetup(),那麼.ajaxStop()方法將不會觸發.' – iappwebdev 2013-03-14 10:36:29

+1

[doc](http://api.jquery.com/ ajaxStart /)應該只附加到'document' - >'$(document).ajaxStart(function(){});' – Eich 2013-03-14 10:37:11

回答

2

閱讀.ajaxStop().ajaxStart()文檔

報價

在jQuery 1.8的,但是,.ajaxStop()方法只應 連接到document

在jQuery 1.8,但是,該方法.ajaxStart()只應 附接到document

$("#loadingGA").hide(); 

$(document).ajaxStart(function() { 
    $('#loadingGA').show(); 
}).ajaxStop(function() { 
    $('#loadingGA').hide(); 
    $("#pageViews").show(); 
}); 
+0

這工作。只有第一行$(「#loadingGA」)。hide();不需要,因爲這是使圖標完全隱藏。 – 2013-03-14 10:51:39

+0

我只是跟你提供的代碼:) – 2013-03-14 11:13:00

+0

:)沒有問題的隊友。 – 2013-03-14 11:54:07

1

按照jQuery spec,應該高度.ajaxStart.ajaxStopdocument在jQuery 1.8.0的。

試試這個:

$(document).ajaxStart(function() { 
    $("#loadingGA").show(); 
}); 

$(document).ajaxStop(function() { 
    $("#loadingGA").hide(); 
}); 
+0

:(嘗試過,但不工作 – 2013-03-14 10:44:16

+0

使用'console.log()'來查看事件是否實際觸發,也許響應(錯誤或確定)回來得太快了,在圖標消失之前你看不到它的圖標再說吧? – Knelis 2013-03-14 10:48:14

+0

是的..它實際上很快,但是現在是固定的。以前的回答非常有幫助 – 2013-03-14 10:56:43