我想在backbonejs视图中为图像附加“onload”事件。我目前将它包含在“事件”中作为“加载img”:“函数”,但它不会被解雇。
有关此的任何建议吗?
答案 0 :(得分:11)
Backbone的事件处理基于delegate
,而delegate
只能用于冒泡的事件。问题是负载事件不会起泡;来自HTML5 specification:
如果下载成功
将img
元素设置为完全可用状态,适当更新图像的显示,并在load
元素上触发名为img
的简单事件。
而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;
}