d1.remove();
});
-test("#6645: Missing element not found check in overlay", function(){
- expect(2);
- var d1 = $('<div title="dialog 1">Dialog 1</div>').dialog({modal: true}),
- d2 = $('<div title="dialog 2">Dialog 2</div>').dialog({modal: true, close: function(){ d2.remove(); }});
-
- equal($.ui.dialog.overlay.instances.length, 2, 'two overlays created');
- d2.dialog('close');
- equal($.ui.dialog.overlay.instances.length, 1, 'one overlay remains after closing the 2nd overlay');
- d1.add(d2).remove();
-});
-
// TODO merge this with the main destroy test
test("#4980: Destroy should place element back in original DOM position", function(){
expect( 2 );
if ( !this.options.modal ) {
return;
}
- if ( $.ui.dialog.overlay.instances.length === 0 ) {
+ if ( $.ui.dialog.overlayInstances === 0 ) {
// prevent use of anchors and inputs
// we use a setTimeout in case the overlay is created from an
// event that we're going to be cancelling (see #2804)
setTimeout(function() {
// handle $(el).dialog().dialog('close') (see #4065)
- if ( $.ui.dialog.overlay.instances.length ) {
+ if ( $.ui.dialog.overlayInstances ) {
$( document ).bind( "focusin.dialog-overlay", function( event ) {
if ( !$( event.target ).closest( ".ui-dialog").length ) {
event.preventDefault();
}, 1 );
}
- // reuse old instances due to IE memory leak with alpha transparency (see #5185)
- var $el = this.overlay = ( $.ui.dialog.overlay.oldInstances.pop() || $( "<div>" ).addClass( "ui-widget-overlay ui-front" ) );
-
+ var $el = this.overlay = $( "<div>" ).addClass( "ui-widget-overlay ui-front" );
$el.appendTo( this.document[ 0 ].body );
-
this._on( $el, {
mousedown: "_keepFocus"
});
-
- $.ui.dialog.overlay.instances.push( $el );
+ $.ui.dialog.overlayInstances += 1;
},
_destroyOverlay: function() {
if ( !this.options.modal ) {
return;
}
- var indexOf = $.inArray( this.overlay, $.ui.dialog.overlay.instances );
-
- if ( indexOf !== -1 ) {
- $.ui.dialog.overlay.oldInstances.push( $.ui.dialog.overlay.instances.splice( indexOf, 1 )[ 0 ] );
- }
-
- if ( $.ui.dialog.overlay.instances.length === 0 ) {
+ $.ui.dialog.overlayInstances -= 1;
+ if ( $.ui.dialog.overlayInstances === 0 ) {
$( [ document, window ] ).unbind( ".dialog-overlay" );
}
-
this.overlay.remove();
}
});
-$.ui.dialog.overlay = {
- instances: [],
- oldInstances: []
-};
+$.ui.dialog.overlayInstances = 0;
// DEPRECATED
if ( $.uiBackCompat !== false ) {