将我的jquery .load转换为.ajax

时间:2012-10-19 15:24:53

标签: javascript jquery ajax load

我有一个.load()函数,我需要转换为.ajax()。我最初使用.load()因为它易于使用,但现在我看到为了达到我想要的结果,我必须使用.ajax()。 这是我的.load()函数:

$("#rightframe").click(function(){
    $("#screen").load("form.html #contact");
  });

我想将其转换为.ajax()并添加以下代码来设置.ajax()调用所需的最短时间(这是因为我有一个加载GIF,如果它没有看起来很奇怪跑得够久)

所以当我试图找出如何设置加载GIF所需的最小时间时,我发现了this段代码。

var counter = 2;
function decrement() {
  if (--counter == 0) {
    $('#loader').hide();
  }
}
setTimeout(decrement, 1000);
$.ajax(..., complete: decrement);

有谁知道如何将.load()函数更改为.ajax()并将减量函数添加到.ajax()函数中?

谢谢,

凯蒂

1 个答案:

答案 0 :(得分:2)

我想你想要这样的东西:

$("#rightframe").click(function () {
    $("#loader").show();
    setTimeout(function () {
        $.ajax({
            url: "form.html",
            complete: function () {
                $("#loader").hide();
            },
            success: function (data) {
                $("#screen").empty().append($(data).find("#contact"));
            },
            error: function () {
                // Handle an error occurring
            }
        });
    }, 2000);
});

我不确定你为什么使用/需要decrement函数,但像这样的代码应该处理加载图像显示的时间足够长。