2011-05-19 116 views
3

以下代碼在啓動函數加載並等待顯示ajax_load時將page-handler.php加載到#page中。我怎樣才能使ajax_load loding-message顯示在另一個div中,當然,當loding結束時會消失?當等待jquery ajax加載時在另一個div中顯示加載消息

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

哇大家都給出了相同的答案在不到一分鐘 – 2011-05-19 15:18:09

回答

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。

+0

所有類型的解決方案這一步工作,你先用我結束了使用該解決方案,謝謝 – Joseph 2011-05-19 15:29:30

+1

@Joseph - 看起來和Vincent的回答,請:) – sje397 2011-05-19 15:30:20

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調用沒有成功。

+0

+1這是更好的建議。 – sje397 2011-05-19 15:29:48

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; 
} 
0

所以我覺得這是你想要的嗎?

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

這會在ajax加載時隱藏另一個div。