使用backbonejs视图,将"onload"事件附加到图像标记的最佳方法是什么?

KD1*_*D12 11 javascript backbone.js backbone-events

我想在backbonejs视图中为图像附加"onload"事件.我目前将它包含在"事件"中作为"加载img":"函数",但它并没有被解雇.

这样做有什么建议吗?

mu *_*ort 11

Backbone的事件处理基于delegate并且delegate只能用于冒泡的事件.问题是负载事件不会起泡; 来自HTML5规范:

如果下载成功
设置的img元素完全可用状态,适当地更新图像的呈现,和火命名为一个简单的事件loadimg元素.

一个简单的事件不会冒泡:

击发命名一个简单的事件ë意味着与名称的事件ê,这不起泡(除非另外说明)[...]

所以你必须手动连接一个处理程序,如下所示:

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;
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/ambiguous/c7wH2/