diff --git a/src/js/fields/basic/ObjectField.js b/src/js/fields/basic/ObjectField.js index f2eaceaeb..89c4e8f26 100644 --- a/src/js/fields/basic/ObjectField.js +++ b/src/js/fields/basic/ObjectField.js @@ -1976,23 +1976,14 @@ var onComplete = function() { // swap order in children - var tempChildren = []; - for (var i = 0; i < self.children.length; i++) - { - if (i === sourceIndex) - { - tempChildren[i] = self.children[targetIndex]; - } - else if (i === targetIndex) - { - tempChildren[i] = self.children[sourceIndex]; - } - else - { - tempChildren[i] = self.children[i]; - } + var adjustedTargetIndex = targetIndex; + if (sourceIndex < targetIndex) { + adjustedTargetIndex--; } - self.children = tempChildren; + + // splice out child + var child = self.children.splice(sourceIndex, 1)[0]; + self.children.splice(adjustedTargetIndex, 0, child); // swap order in DOM tempSourceMarker.replaceWith(targetContainer);