Closed
Description
Gridstack._prepareElementByNode uses _.extend to set the draggable options and whatnot on an added widget, e.g.:
el
.draggable(_.extend(this.opts.draggable, {
containment: this.opts.isNested ? this.container.parent() : null,
start: onStartMoving,
stop: onEndMoving,
drag: dragOrResize
}))
This has the effect of modifying this.opts.draggable
, setting its members to the same methods that are passed to el.draggable()
. Since these new methods reference el
, the widget stays in memory even after it is removed. Probably not a huge deal, as only one widget can leak at a time (as this.opts
will get overwritten with the new widget's options), but it can make for a frustrating search for a leak.