11

我想在backbonejs 视图中为图像附加一个“onload”事件。我目前将它作为“load img”:“function”包含在“事件”中,但它没有被解雇。

这样做有什么建议吗?

4

1 回答 1

11

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

如果下载成功
img元素设置为完全可用状态,适当地更新图像的呈现,并loadimg元素上触发一个简单的事件。

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

触发一个名为 e 的简单事件意味着一个名为e的事件不会冒泡(除非另有说明)[...]

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

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;
}

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

于 2012-03-22T20:30:41.027 回答