4

我正在尝试在 jquery 中使用 ajaxStop 函数,但无法启动它,有什么想法吗?

我要做的是遍历每个锚标记,然后更新其中的一些内容,从那里我想使用 ajaxstop 事件来触发脚本以根据更新重新组织锚

谢谢你的帮助

jQuery(document).ready(function($) {
    function updateUsers() {
        $(".twitch_user").each(function(index, user) {
            $.ajax({ url: "https://api.twitch.tv/kraken/streams/" + $(user).attr("id") + "?callback=?", success: function(d) {
                if(d.stream) {
                    $(user).addClass("online");
                    $(user).removeClass("offline");
                    $(user).children(".viewers").text(d.stream.viewers + " viewers");
                } else {
                    $(user).addClass("offline");
                    $(user).removeClass("online");
                    $(user).children(".viewers").text("0 viewers");
                }
                console.log(d);
            }, dataType: "json"});
        });
    }
    //$(document).ajaxStart(function() {
    //  console.log("Event fired!");
    //  updateUsers().delay(2000);
    //})
    $(document).ajaxStop(function() {
        console.log("Event fired!");
        // updateUsers().delay(2000);
    });
    updateUsers();
});
4

1 回答 1

3

显然,在执行 JSONP 请求时,全局处理程序已关闭,如此票证中所述:

JSONP 请求不能保证完成(因为没有捕获到错误)。在这种情况下,jQuery 1.5 会强制全局选项为 false,以保证内部 ajax 请求计数器在某一时刻回到零。

我不确定 JSONP 是否是您的意图,但?callback=?URL 末尾的 jQuery 会这样处理它。

解决方案是设置以下内容:

jQuery.ajaxPrefilter(function( options ) {
    options.global = true;
});
于 2013-01-29T19:31:51.883 回答