From: Scott González Date: Sat, 28 Mar 2009 16:33:59 +0000 (+0000) Subject: Dialog: Don't bind overlay event handlers if the overlays are destroyed before the... X-Git-Tag: 1.8a1~174 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=a39d0d9350dc8589c61a793bb5aca4916406d737;p=jquery-ui.git Dialog: Don't bind overlay event handlers if the overlays are destroyed before the setTimeout block is executed - Fixes #4065 - modal dialog + button locks page. --- diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index 553a6748d..cbd0b107c 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -533,10 +533,13 @@ $.extend($.ui.dialog.overlay, { // we use a setTimeout in case the overlay is created from an // event that we're going to be cancelling (see #2804) setTimeout(function() { - $(document).bind($.ui.dialog.overlay.events, function(event) { - var dialogZ = $(event.target).parents('.ui-dialog').css('zIndex') || 0; - return (dialogZ > $.ui.dialog.overlay.maxZ); - }); + // handle $(el).dialog().dialog('close') (see #4065) + if ($.ui.dialog.overlay.instances.length) { + $(document).bind($.ui.dialog.overlay.events, function(event) { + var dialogZ = $(event.target).parents('.ui-dialog').css('zIndex') || 0; + return (dialogZ > $.ui.dialog.overlay.maxZ); + }); + } }, 1); // allow closing by pressing the escape key