diff --git a/source/Ox.UI/js/Core/Element.js b/source/Ox.UI/js/Core/Element.js index 9cc9cf7a..d59cc90c 100644 --- a/source/Ox.UI/js/Core/Element.js +++ b/source/Ox.UI/js/Core/Element.js @@ -466,7 +466,7 @@ }; Ox.Element.prototype.findElements = function findElements() { - return Ox.map(this.find('.OxElement'), Ox.getOxElement); + return Ox.slice(this.find('.OxElement')).map(Ox.getOxElement); }; /*@ @@ -570,9 +570,8 @@ Ox.Element.prototype.removeElement = function removeElement(includeChildren) { if (includeChildren !== false) { - this.find('.OxElement').each(function() { - var $element = Ox.getElement(this); - $element && $element.removeElement(false); + this.findElements().forEach(function($element) { + $element.removeElement(false); }); } Ox.Focus.removeElement(this.oxid); @@ -602,10 +601,12 @@ @*/ Ox.Element.prototype.setElement = function setElement($element) { $element.addClass('OxElement').data({oxid: this.oxid}); - this.replaceWith($element); + this.findElements().forEach(function($element) { + $element.removeElement(false); + }); + this.$element.replaceWith($element); this.$element = $element; this[0] = $element[0]; - Ox.elements[this.oxid] = this; return this; };