From a39d0d9350dc8589c61a793bb5aca4916406d737 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Scott=20Gonz=C3=A1lez?= Date: Sat, 28 Mar 2009 16:33:59 +0000 Subject: [PATCH] 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. --- ui/ui.dialog.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 -- 2.39.5