Mi escenario:jQuery UI closeOnEscape de diálogo no funciona para varios cuadros de diálogo abiertos
Cuando se hace clic en un elemento particular en Dialog1, Dialog2 abre.
Al presionar Escape para cerrar Dialog2, funciona como se esperaba y se cierra Dialog2.
Dialog1 permanece y usted pensaría que podría cerrarse presionando Escape nuevamente, pero no es así. Primero debe hacer clic en el cuadro de diálogo y luego presionar Escape para que se cierre.
Esto es lo que he tratado, pero fue en vano:
// 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"); }
}
Creo que @ Andrew Whitaker publicó la solución a su problema :) –