【问题标题】:Preload Images on ajax request根据 ajax 请求预加载图像
【发布时间】:2013-05-16 18:21:48
【问题描述】:

我正在运行一个脚本,该脚本从 ajax 请求加载图像和数据,然后将其显示在我的 Blocksit 画廊(砌体画廊的 jquery 插件)中。问题 div 是在实际加载图像之前创建的,因此它们无法正确放置在图库中。我需要以某种方式保存数据,加载它,然后运行该函数来显示图库。我曾尝试使用 setTimout,但显然没有运气。这是我的代码:

("#loadMore").click(function(){
    $.ajax({
        url: "loadMore.php",
        data: {count: count,
               type: type},
        type: "POST",
        success: function(html){
            var data = jQuery.parseJSON(html);
            if (data.html == "stop"){

            }
            else{
                setTimeout(function() {
                    $('#container').append(data.html);
                    $('#container').BlocksIt({
                        numOfCol: 3,
                        offsetX: 5,
                        offsetY: 5
                    });


                }, 2000);
                $('html, body').animate({ scrollTop: $(document).height()-$(window).height() }, 500, "linear");
                count = $(".grid").length;
            }          
        }
    });
});

非常感谢任何帮助:)

【问题讨论】:

    标签: jquery preload


    【解决方案1】:

    尝试使用以下步骤 -

    创建 dom

    $('<img/>')[0].src = /* ur url */;
    

    然后运行代码 onLoad 事件

    $('img').load(function(){
     // your code 
    });
    

    实际上浏览器足够聪明,直到数据没有添加到 dom 中它才会加载.....它甚至不关心你设置了多少时间超时,所以尝试创建 dom 然后加载 img将其插入正确的位置

    【讨论】:

    • 在这种情况下.. 我的 src = to 是什么。我有我正在加载的 data.html
    • 你必须使用$('img').each(function(){$(this).attr('src');})提取它们
    • 所以,我需要先收集 data.html,运行一个 .each,然后在加载每个图像时加载数据......你能告诉我如何适应我的代码吗?我搞不清楚了。我在哪里运行每个语句。它知道从 data.html 中获取而不说明它吗?
    • 基本上我所说的是使用jQuery预加载图像然后添加
    • 可以从这里获得帮助stackoverflow.com/questions/1674932/…
    猜你喜欢
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 2016-04-06
    相关资源
    最近更新 更多