Одним из быстрых решений было бы сохранить ссылки на jQuery-Object в массиве как глобальную переменную. Например:
globalarray = new Array();
var jDialog = jQuery('selector').dialog({
parameters: go here
});
globalarray.push(jDialog);
При таком подходе у вас будет разделение представления и логики, и вы можете просто перебрать массив следующим образом:
function destroy_all_dialogs() {
var max_length = i.length
for (var i=0; i<max_length; ++i) {
var jDialog = globalarray[i];
jDialog.dialog('destroy');
}
}
Обратите внимание, что это упрощенное решение. Если вы хотите быть более конкретным (возможно, закрыть только диалоги определенного контекста), вам понадобится более сложный объект для управления этим. Кроме того, я разбил все на переменные для лучшего понимания каждого шага, но вы можете сгруппировать некоторые операторы вместе, если для вас слишком много переменных;)
Примечание
Если ваш триггер настроен так, что он всегда срабатывает перед закрытием, вы должны удалить триггер перед закрытием. Вы можете добавить это к функции destroy_all_dialogs
.