【发布时间】:2012-04-07 10:41:06
【问题描述】:
我想在backbonejs 视图中为图像附加一个“onload”事件。我目前将它作为“load img”:“function”包含在“事件”中,但它没有被触发。
对此有什么建议吗?
【问题讨论】:
标签: javascript backbone.js backbone-events
我想在backbonejs 视图中为图像附加一个“onload”事件。我目前将它作为“load img”:“function”包含在“事件”中,但它没有被触发。
对此有什么建议吗?
【问题讨论】:
标签: javascript backbone.js backbone-events
Backbone 的事件处理基于delegate,而delegate 只能用于冒泡事件。问题是加载事件不会冒泡;来自HTML5 specification:
如果下载成功
将img元素设置为完全可用状态,适当地更新图像的呈现,并在img元素处触发一个名为load的简单事件。
simple event 不会冒泡:
触发一个名为 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;
}
【讨论】: