Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在主干视图中,等待占位符图像加载,然后显示视图并延迟加载实际图像_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript 在主干视图中,等待占位符图像加载,然后显示视图并延迟加载实际图像

Javascript 在主干视图中,等待占位符图像加载,然后显示视图并延迟加载实际图像,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我使用主干、require和下划线js呈现此视图: define([ 'jquery', 'underscore', 'backbone', 'collections/performers', 'text!templates/listPerformers.html', 'lazy' ], function ($, _, Backbone, Performers, listPerformersTpl) { var ListPerform

我使用主干、require和下划线js呈现此视图:

define([
    'jquery', 
    'underscore', 
    'backbone',
    'collections/performers',
    'text!templates/listPerformers.html',
    'lazy'
], function ($, _, Backbone, Performers, listPerformersTpl) {

    var ListPerformers = Backbone.View.extend({

        el : '.models',

        render : function () {

            var that = this,

                performers = new Performers(),

                nonce = that.$el.data('nonce');

            performers.fetch({

                dataType : "json",

                data : {action: "dxx_ajax", nonce: nonce},

                success : function (performers) {

                    var template = _.template(listPerformersTpl, {performers: performers.models});

                    that.$el.append(template);

                    setTimeout(function(){ 

                        $("img.lazy").lazyload({
                            effect : "fadeIn"
                        });

                    }, 50);
                }
            });
        }
    });

    return ListPerformers;
});
加载完所有内容后,我在所需元素中添加了一个_下划线模板中的html

模板具有占位符图像-加载gif。

在此之后,我使用延迟加载来加载实际图像,替换加载的gif

我的问题是,在确定已加载占位符图像(正在加载的GIF)之后,我需要一种显示视图的方法。

html()和append()jquery函数没有回调,所以我不确定处理这个问题的最佳方法是什么

var loader = new Image();
loader.onload = function () { console.log('loader loaded - render view'); }
loader.src = 'http://placekitten.com/40/40';

了解如何选择图像,绑定到onload,然后触发load(如果图像在绑定之前已经完成)。使用这个想法,您可以通过附加html,
$el.find
'ing所有附加的加载程序图像,对它们进行计数,然后在所有图像完成加载后触发视图显示来实现所需的功能。