【问题标题】:Using backbonejs view, what is the best way to attach an "onload" event to an image tag?使用backbonejs视图,将“onload”事件附加到图像标签的最佳方法是什么?
【发布时间】:2012-04-07 10:41:06
【问题描述】:

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

对此有什么建议吗?

【问题讨论】:

    标签: javascript backbone.js backbone-events


    【解决方案1】:

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

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

    【讨论】:

    • 完美!这有帮助。是的,我在使用 jquery 的“on”方法时注意到了事件冒泡问题。我想知道,如果backbonejs 实现了不同的逻辑。但是,我还不知道“简单事件”。感谢您的回答
    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2011-06-09
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多