在主干视图中处理图像错误事件
Working with an image error event in a Backbone view
在主干视图使用的下划线模板中,我有一个图像。我正在尝试附加到错误事件,如果未找到原始图像,请更改图像源。
基于这个类似的问题,我采取了以下方法:
render: function() {
var self = this;
this.$el.html( this.template( { person: this.model.toJSON() } ) );
this.$el.find('img.employee-image').on('error', function(evt) { this.src = "assets/images/_noimage.gif"; });
return this;
}
这非常有效,但是如果我尝试将 src 的更改移动到视图中的单独方法,则会调用该方法,但图像不会更改。
render: function() {
var self = this;
this.$el.html( this.template( { person: this.model.toJSON() } ) );
this.$el.find('img.employee-image').on('error', function(evt) { self.handleMissingImage(evt); });
return this;
},
handleMissingImage: function(evt) {
// This by itself did not work.
// this.src = "assets/images/_noimage.gif";
var i = $(evt.currentTarget);
i.src = "assets/images/_noimage.gif";
console.log(i.src);
}
注销 src 会显示"资产/图像/_noimage.gif",但图像不会显示。我知道它存在,因为上面概述的第一种方法工作正常。
我在这里错过了什么?
我认为
你的问题就在这里:
i.src = "assets/images/_noimage.gif";
在你的handleMissingImage
函数中,你说:
i = $(evt.currentTarget);
所以i
是一个jQuery对象,而不是一个原始的DOM元素。这意味着您想说i.attr('src', ...)
更改src
属性,或者根本不费心包装evt.currentTarget
。
相关文章:
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- 在Firefox中导出高图表时出现黑色图像错误
- JS预加载图像错误
- JQuery 图像错误处理
- Javascript图像动画闪烁图像错误
- 在主干视图中处理图像错误事件
- Jquery 在图像错误上对多个元素不起作用
- PHP 中的“找不到一个或多个图像”错误
- Jquery 在动态图像上不起作用的图像错误
- Javascript-随机图像错误
- Jquery插件Croppie裁剪图像错误
- 在ie7中没有注册图像错误
- 通过iframes预加载图像错误
- 区分图像错误和形状错误
- 画布绘制图像错误
- NodeJs/Formidable,上传图像错误
- 在服务器上保存图像错误
- 鼠标位置在Jquery点击图像(错误的元素滚动)
- wordpress中出现Javascript图像错误
- 在图像错误后向Span添加文本