Backbone.js查看img onload

时间:2013-02-21 13:23:37

标签: events backbone.js image onload

我正在与backbone.js斗争。我对js很新,习惯于as3更面向对象

我尝试用骨干制作一个简单的图库。我加载了100张图片,我希望它们在加载时淡入。

我在AppView中有这个。对于每个图像网址,我得到一个PhotoView

var view = new PhotoView({model: photo, list:this.imageList});
this.imageList.append(view.render().el);

在Photoview中,我使用此代码将onload()附加到img标记上(找到here):

render: function() {
    var self = this;
    this.$el.append(some_html_with_img_elements);
    this.$el.find('img').on('load', function() { self.img_loaded() });
    return this;
}

问题是在img_loaded()中我反复获得相同的视图(最后一个视图)。任何人都知道如何保持对正确视图的引用

2 个答案:

答案 0 :(得分:3)

this作为参数传递给img_loaded,以便您可以获得刚刚加载的图像的引用,并根据需要对其进行操作。

由于你没有发布img_loaded函数的代码,我不确定你是否试图在每次加载时一次淡出它们(一旦你传入一个简单的工作图片参考),或者等到它们全部加载完毕并将它们全部淡入(需要一些额外的代码)。

答案 1 :(得分:0)

您可以将视图的引用传递给这样的回调函数。

var me = this;
me.$el.find("img").on("load", { me: me }, function (event) { event.data.me.img_loaded(); });