From: Jörn Zaefferer Date: Sat, 17 Nov 2012 12:14:04 +0000 (+0100) Subject: Dialog: Improve _destroy method, detaching dialog content from wrapper instead of... X-Git-Tag: 1.10.0-beta.1~97 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=32a893128dcda19f570dbd8f07d82e6e8d434cdf;p=jquery-ui.git Dialog: Improve _destroy method, detaching dialog content from wrapper instead of appending to body. --- diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index 15e19d7cf..b998c2558 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -123,20 +123,20 @@ $.widget("ui.dialog", { oldPosition = this.oldPosition; this._destroyOverlay(); - this.uiDialog.hide(); + this.element .removeUniqueId() .removeClass( "ui-dialog-content ui-widget-content" ) .hide() - // TODO restore old position directly, instead of appending to body first - .appendTo( "body" ); + // without detaching first, the following becomes really slow + .detach(); + this.uiDialog.remove(); if ( this.originalTitle ) { this.element.attr( "title", this.originalTitle ); } - // TODO do this before removing the wrapper next = oldPosition.parent.children().eq( oldPosition.index ); // Don't try to place the dialog next to itself (#8613) if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {