如何调用jquery ajaxStart + ajaxComplete

9
我有一个加载函数,希望在它加载时将一些HTML写入到
中,并在加载完成后显示页面。我看到了一些关于ajaxStartajaxComplete事件的介绍,但是我不确定如何实现它们。
以下是我考虑使用的jQuery代码,但是我不确定如何在当前代码中实现...
$(document).ajaxStart(function(){ 
    $('#content').html("Loading Content...");
});

这是我目前正在使用的jQuery:

//Load content
$(".load").click(function(){
    $("#content").empty();           
    loadName = $(this).attr("id");
    $("#content").load("/content/" + loadName + ".php");
});
1个回答

17

如果你想更新单个 div 的内容,并显示加载消息/指示器,可以像这样操作:

$("#content").html('<strong>Loading...</strong>')
             .load("/content/" + loadName + ".php");

除非您有一个通用的加载指示器用于所有ajax调用,否则我不会使用ajaxStartajaxStop/ajaxComplete 全局事件。话虽如此,它可以按照以下方式完成:

$("#loading").bind("ajaxStart", function(){
    $(this).show();
}).bind("ajaxStop", function(){
    $(this).hide();
});

其中loading元素是您希望在ajax调用期间显示的任何内容。


有时候内容加载得非常快,以至于“正在加载...”的消息甚至都没有出现。我们该如何设置一些时间间隔,让用户能够看到正在加载的提示? - defau1t

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接