我想在backbonejs 视图中为图像附加一个“onload”事件。我目前将它作为“load img”:“function”包含在“事件”中,但它没有被解雇。
这样做有什么建议吗?
我想在backbonejs 视图中为图像附加一个“onload”事件。我目前将它作为“load img”:“function”包含在“事件”中,但它没有被解雇。
这样做有什么建议吗?
Backbone 的事件处理基于delegate
并且delegate
只能用于冒泡事件。问题是加载事件不会冒泡;来自HTML5 规范:
如果下载成功
将img
元素设置为完全可用状态,适当地更新图像的呈现,并load
在img
元素上触发一个简单的事件。
一个简单的事件不会冒泡:
触发一个名为 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/