Мой сценарий:
При щелчке по определенному элементу в 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"); }
}