在使用jQuery删除图像并重新附加图像时,不会触发加载事件

时间:2014-11-06 01:24:09

标签: javascript jquery backbone.js

当图像的load发生变化时,我正在尝试将img事件添加到src标记。 image由于插件而被删除并重新附加,因此我无法真正改变它。这是我的简化HTML

<div class="twitter">
    <img src="picture.jpg" />
</div>

这是我的Backbone脚本

var TwiterView = Backbone.View.extend( {
    render : function() {
        var self = this;

        this.$el.on('load', 'img', function() {
            self.updateTwitterPreview();
        }).each(function() {
            if(this.complete) $(this).trigger('load');
        });

        this.$el.find('img').on("remove", function () {
            alert("Element was removed"); // This one got fired when the event is removed
        });
        return this;
    },
    updateTwitterPreview: function() {
        alert('test'); // This one got fired when the page is loaded the first time, but not when the image is changed
    }
});

我正在尝试使用委托事件,但它确实没有用。

1 个答案:

答案 0 :(得分:0)

我认为this.$el会返回实际的图片元素

对于委托事件,您应该使用父元素

而不是

this.$el.on('load', 'img', function() {

尝试使用此

$(document).on('load', 'img', function() {

此处$(document)元素可以是image元素的父级