【问题标题】:showing loading gif file while page gets loaded using jquery在使用 jquery 加载页面时显示加载 gif 文件
【发布时间】:2010-10-24 19:13:04
【问题描述】:

我正在使用 JQuery。

我正在使用下面的 jquery 来显示页面片段,它会在加载主页时加载页面片段。

$(document).ready(function() 
{
        $(".load-fragment").each(function()         
        {          
            var $objThis = $(this);
            var fname = $objThis.attr("href");
            var dynDivID = "divContent"+ $objThis.attr("id"); 
            var newDiv = $("<div>").attr("id",dynDivID).load(fname + " #tabs-container",function ()
            {               
                $(this).hide(); //Hiding all the newly created DIVs

            });          
            newDiv.addClass('dynDiv');  //Adding CSS to newly created Dynamic Divs 

            $("#column2").append(newDiv); //adding new div in div column2 
        });    

        $(".load-fragment").click(function() 
        {
            // load page on click  
            var $thiz = $(this); //making the current object   
            $thiz.attr("href", "#");         
            $(".tabs-nav li").removeClass("tabs-selected"); //removing the css from the li
            $thiz.parent().addClass("tabs-selected"); //adding the selected class to the parent on click
            $("#tabs-container").hide(); //playing with hide and show
            $('.dynDiv').hide();
            $("#divContent" + $thiz.attr("id")).show();  
        });     
}); 

现在我想在 jquery 加载页面时显示 loading.gif。下面是我试图加载页面的 jquery 上面的代码。

var newDiv = $("<div>").attr("id",dynDivID).load(fname + " #tabs-container",function ()
                {               
                    $(this).hide(); //Hiding all the newly created DIVs

                }); 

请提出建议,因为加载页面片段需要一些时间。

谢谢。

最好的问候, 女士

【问题讨论】:

    标签: jquery


    【解决方案1】:

    如果您希望在片段加载时图像对所有片段可见,只需从开始将其添加到元素:

    var newDiv =
      $("<div>").attr("id",dynDivID)
      .load(fname + " #tabs-container",function () {               
        $(this).hide();
      })
      .addClass('dynDiv')
      .append($('<img/>').attr({ src: 'loading.gif', alt: '' }));
    $("#column2").append(newDiv);
    

    如果您希望图像仅对您尝试在加载时查看的片段可见,请添加图像并将其从开始隐藏:

    var newDiv =
      $("<div>").attr("id",dynDivID)
      .load(fname + " #tabs-container")
      .hide()
      .addClass('dynDiv')
      .append($('<img/>').attr({ src: 'loading.gif', alt: '' }));
    $("#column2").append(newDiv);
    

    【讨论】:

    • 谢谢 Guffa,你能告诉我“添加图像并从头开始隐藏它”是什么意思吗:上面两个代码对我来说看起来一样,请建议
    • @Solution:第一个示例将加载内容,然后在内容到达时隐藏 div(在将内容添加到 div 之后,就在浏览器即将显示它之前) ,而第二个示例将从开始隐藏 div 并将内容加载到隐藏的 div 中。
    • 非常感谢 Guffa 的帮助和建议!对我来说效果很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 2016-07-16
    相关资源
    最近更新 更多