使用backbonejs视图,如何最好地将“onload”事件附加到图像标记?

11
我想为backbonejs视图中的图像附加一个“onload”事件。 我目前将其包含在“events”中,如“load img”:“function”,但它没有触发。 有关此事的建议吗?
1个回答

11
Backbone的事件处理基于delegate,而delegate只能用于冒泡事件。问题在于load事件不会冒泡;根据HTML5规范

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

简单事件不会冒泡:

触发名为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/


完美!这很有帮助。是的,我在使用jQuery的“on”方法时注意到了事件冒泡问题。我想知道backbonejs是否实现了不同的逻辑。但是,我还不知道“简单事件”。感谢您的回答。 - KD12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接