在等待jquery ajax加载时,在另一个div中显示loading-message

时间:2011-05-19 15:12:11

标签: jquery

以下代码在触发函数加载时将page-handler.php加载到#page中,并且等待时显示ajax_load。如何让ajax_load loding-message显示在另一个div中,当然在loding完成后会消失?

function load(value) {
    $('#page').html(ajax_load);
    $("#page").load("page-handler.php", {page:value});
    return false;
}

5 个答案:

答案 0 :(得分:2)

首先使用加载消息创建隐藏的div:

 <div id="loading">loading...</div>

然后在你的函数中:

function load(value) {
    $('#loading').show();
    $('#page').html(ajax_load);
    $("#page").load("page-handler.php", {page:value}, function(){
            $('#loading').hide();
    });
    return false;
}

当然,如果ajax调用没有成功,你必须做点什么。

答案 1 :(得分:0)

使用$('#selector')。ajaxStart()和$('#selector')。ajaxStop();

http://api.jquery.com/ajaxStart/

答案 2 :(得分:0)

function load(value) {
    $('somediv').html(ajax_load);
    $("#page").load("page-handler.php", {page:value}, function() {
      $('somediv').empty(); // or set new contents, or hide, or whatever
    });
    return false;
}

这会将内容放入id为'somediv'的内容中。您可以使用课程('.class')或其他几个selectors来选择您的div。

答案 3 :(得分:0)

在开始通话前显示div并将其隐藏在回调中,例如:

function load(value) {
    $('#busydiv').show(); // shows busy indicator
    $('#page').html(ajax_load);
    $("#page").load("page-handler.php", {page:value}, function() {
         $('#busydiv').hide();
    });
    return false;
}

答案 4 :(得分:0)

所以我认为这就是你想要的?

$("#anotherDiv").html(message);
$("#page").load("page-handler.php", {page:value}, function(){$("#anotherDiv").hide();});

当ajax加载时,这将隐藏另一个div。