0

我必须显示我使用谷歌分析所做的综合浏览量。下面是我将在其中显示页面视图的 html

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

如您所见,我有两个跨度,一个将显示页面浏览量,另一个用于显示加载图标,直到获取页面浏览量。我使用的方法是:

$("#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);
});}

问题是,一切正常,但即使在页面视图加载后加载图标也不会消失。尝试了所有可能的事情。请指导。谢谢!

4

2 回答 2

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();
});
于 2013-03-14T10:37:17.530 回答
1

根据jQuery 规范.ajaxStart,您应该.ajaxStop仅从documentjQuery 1.8.0 开始附加。

试试这个:

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

$(document).ajaxStop(function () {
    $("#loadingGA").hide();
});
于 2013-03-14T10:37:34.940 回答