From a2fd135439590148b15a298db72660b74fe721ce Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sat, 12 Jun 2021 13:12:06 +0200 Subject: [PATCH] Remove properly frame element --- src/canvas/view/FrameWrapView.js | 4 +++- src/utils/dom.js | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/canvas/view/FrameWrapView.js b/src/canvas/view/FrameWrapView.js index 839ba0745..f4bc217ab 100644 --- a/src/canvas/view/FrameWrapView.js +++ b/src/canvas/view/FrameWrapView.js @@ -1,7 +1,7 @@ import Backbone from 'backbone'; import FrameView from './FrameView'; import { bindAll, isNumber, isNull, debounce } from 'underscore'; -import { createEl } from 'utils/dom'; +import { createEl, removeEl } from 'utils/dom'; import Dragger from 'utils/Dragger'; export default Backbone.View.extend({ @@ -71,6 +71,7 @@ export default Backbone.View.extend({ remove(opts) { this.frame.remove(opts); + removeEl(this.elTools); Backbone.View.prototype.remove.apply(this, arguments); ['frame', 'dragger', 'cv', 'em', 'canvas', 'elTools'].forEach( i => (this[i] = 0) @@ -160,6 +161,7 @@ export default Backbone.View.extend({ render() { const { frame, $el, ppfx, cv, model, el } = this; const { onRender } = model.attributes; + frame && frame.remove(); this.__handleSize(); frame.render(); $el diff --git a/src/utils/dom.js b/src/utils/dom.js index 2b57785e9..50bb43e60 100644 --- a/src/utils/dom.js +++ b/src/utils/dom.js @@ -10,6 +10,11 @@ export const motionsEv = export const isDoc = el => el && el.nodeType === 9; +export const removeEl = el => { + const parent = el && el.parentNode; + parent && parent.removeChild(el); +}; + export const isVisible = el => { return ( el && !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)