Я знаю, что могу использовать следующее для закрытия диалогового окна путем нажатия снаружи:
$('.ui-widget-overlay').click(function() { $("#dialog").dialog("close"); });
Но как я изменяю это так, это работает на каждое диалоговое окно, т.е. я хочу сказать близко какое-либо диалоговое окно, поскольку мы имеем несколько на странице и были бы легче иметь одну строку кода?
Может быть, это перебор, но попробуйте
$('.ui-widget-overlay').live('click',
function() {
$(".ui-dialog").dialog("close");
}
);
Вам нужно запустить этот код на своей странице только один раз, метод live
должен заставить его работать каждый раз, когда вы открываете диалог.
РЕДАКТИРОВАТЬ: Если это не работает, это может быть ошибка .dialog
. Попробуйте
$('.ui-widget-overlay').live('click',
function() {
$(".ui-dialog").each(
function() {
$(this).dialog("close");
}
);
}
);
вы можете присвоить каждому диалогу класс
, а затем выбрать его, запустить на каждом и объединить его, даже если он не открывается, он будет работать:
$('.ui-widget-overlay').click(function() { $(".dialogs").each(function()
{$(this).dialog("close");}) });