Ответы даны практически на работе. За исключением того, что вы не можете вызвать dialog('close')
для элементов с классом ui-dialog
. Это сгенерированный jquery-ui контент вокруг вашего исходного элемента, и close должен вызываться для исходного элемента, который вы использовали, когда вызывали .dialog
. К счастью, jquery добавляет класс ui-dialog-content
к ним. Используйте это, чтобы изменить решение Гая, и вы получите:
$(document).on('click', '.ui-widget-overlay', function() {
$('.ui-dialog-content').each(function() {
$(this).dialog('close');
});
});
Вы можете попробовать это на jsfiddle .
EDIT: изменено .click
на .live
, поскольку ui-widget-overlay
может еще не существовать при выполнении этого кода.
РЕДАКТИРОВАТЬ: изменено на .on
вместо .live
, поскольку оно устарело.