私のシナリオ:
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"); }
}