diff --git a/src/dom_components/model/ComponentImage.js b/src/dom_components/model/ComponentImage.js index 1ef77ed51..42917c43f 100644 --- a/src/dom_components/model/ComponentImage.js +++ b/src/dom_components/model/ComponentImage.js @@ -73,9 +73,8 @@ module.exports = Component.extend( * @private */ getAttrToHTML(...args) { - var attr = Component.prototype.getAttrToHTML.apply(this, args); - delete attr.onmousedown; - var src = this.get('src'); + const attr = Component.prototype.getAttrToHTML.apply(this, args); + const src = this.get('src'); if (src) attr.src = src; return attr; }, diff --git a/src/dom_components/view/ComponentImageView.js b/src/dom_components/view/ComponentImageView.js index 06232b2e4..3bce4209c 100644 --- a/src/dom_components/view/ComponentImageView.js +++ b/src/dom_components/view/ComponentImageView.js @@ -7,7 +7,9 @@ module.exports = ComponentView.extend({ events: { dblclick: 'onActive', click: 'initResize', - error: 'onError' + error: 'onError', + dragstart: 'noDrag', + mousedown: 'noDrag' }, initialize(o) { @@ -84,14 +86,17 @@ module.exports = ComponentView.extend({ if (fallback) this.el.src = fallback; }, + noDrag(ev) { + ev.preventDefault(); + return false; + }, + render() { this.renderAttributes(); this.updateSrc(); const { $el, model } = this; const cls = $el.attr('class') || ''; !model.get('src') && $el.attr('class', `${cls} ${this.classEmpty}`.trim()); - // Avoid strange behaviours with drag and drop - $el.attr('onmousedown', 'return false'); this.postRender(); return this;