在页面加载时显示div,在完成时隐藏

时间:2009-11-05 13:38:53

标签: javascript jquery html

我希望在页面上加载一些XML内容时,在我的页面上显示一个带有加载动画的div。一旦加载,我想隐藏这个div。我怎么能这样做呢?

5 个答案:

答案 0 :(得分:8)

$.ajax({
    url: '/test.xml',
    beforeSend: function(XMLHttpRequest) {
        // Show the div before sending the request
        $('#load').show();
    },
    complete: function(XMLHttpRequest, textStatus) {
        // Hide the div no matter if the call succeeded or not
        $('#load').hide();
    },
    success: function(xml) {
        // if the request succeeds do something with the received XML           
    }
});

答案 1 :(得分:3)

$.ajax({
    type: "GET",
    url: "your.xml",
    dataType: "xml",
    beforeSend: function() {
        $('#div').fadeIn();
    },
    success: function(xml) {
       // example for parsing xml
       $(xml).find('YOUR_XML_TAG').each(function(){
           // append xml to page HERE
       });
    },
    complete: function() {
       $('#div').fadeOut();
    }
});

答案 2 :(得分:2)

@cballou如果$ .ajax()因各种可能的原因没有成功,你的代码将会“#div”“up”。

答案 3 :(得分:1)

几乎正确;) 永远不要低估删除冗余$()调用的重要性。所以...

//all of this is inside some closure or function
var $blanket = $("#div") ; 
// check if after last call, something has possibly removed your '#div'
// throw if false
ASSERT( $blanket.length === 1 ) ;    
$.ajax({
        type: "GET",
        url: "your.xml",
        dataType: "xml",
        beforeSend: function() {  $blanket.fadeIn();
        },
        success: function(xml) {
           // example for parsing xml
           $(xml).find('YOUR_XML_TAG').each(function(){
               // append xml to page HERE
           });
        },
        complete: function() { $blanket.fadeOut();
        }
    });

- DBJ

答案 4 :(得分:0)

我会使用页面网址更改时触发的onbeforeunload事件来创建不透明度为0.5的叠加div,在加载页面时将替换为新内容。