我正在与 backbone.js 作斗争。我对 js 很陌生,习惯了 as3 什么是更面向对象的
我尝试制作一个带有主干的简单图片库。我加载了 100 张图像,我希望它们在加载后淡入。
我的 AppView 中有这个。对于我得到的每个图像 url,我都会创建一个 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() 中,我一遍又一遍地看到相同的 View (最后一个 View )。任何人都知道如何保持对正确 View 的引用
最佳答案
将 this
作为参数传递给 img_loaded
,这样您将获得对刚刚加载的图像的引用,并根据需要对其进行操作。
由于您没有发布 img_loaded
函数的代码,所以我不确定您是否试图在加载它们时一次将它们淡入淡出(一旦您完成了一项简单的工作)传入图像引用),或者等到它们全部加载完毕并立即将它们全部淡入(为此需要一些额外的代码)。
关于events - Backbone.js 查看 img onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15003381/