jQuery UI dialog closeOnEscape не работает для нескольких открытых диалоговых окон

Мой сценарий:

  1. При щелчке по определенному элементу в Dialog1 открывается Dialog2.

  2. Когда вы нажимаете Escape, чтобы закрыть Dialog2, он работает должным образом и закрывает Dialog2.

  3. 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"); }

}
5
задан Code Maverick 30 August 2012 в 13:31
поделиться