我的情景:jQuery UI的對話框closeOnEscape不工作的多個打開的對話框
當單擊Dialog1特定的元素,Dialog2打開。
當您點擊Escape關閉Dialog2時,按預期工作並關閉Dialog2。
Dialog1仍然存在,你會認爲它可以通過再次擊中Escape來關閉,但事實並非如此。您必須先點擊對話框,然後點擊Escape關閉它。
這是我都試過了,但無濟於事:
// Array to hold all of our open dialogs id's
var openDialogs = [];
// the open: method in my dialog
open: function() {
openDialogs[openDialogs.length] = $(this).attr("id");
}
// the close: method in my dialog
close: function() {
var index = $.inArray($(this).attr("id"), openDialogs),
$previousDialog = (index > 0) ? $("#" + openDialogs[index]) : undefined;
// remove the current dialog from the array via Jon Resig's remove() method
openDialogs.remove(index);
// set focus to previously opened dialog
if ($previousDialog) { $previousDialog.focus(); }
// I've even tried:
//
// if ($previousDialog) { $previousDialog.dialog("moveToTop"); }
}
我相信@Andrew惠特克張貼的解決您的問題:) – 2011-05-12 01:58:00