Вы можете использовать событие dialogbeforeclose
для передачи функции обратного вызова, которая будет вызываться всякий раз, когда диалог собирается закрыться.
Если вы вернете false
из этой функции, закрытие будет отменено.
$('.selector').bind('dialogbeforeclose', function(event, ui) {
...
});
http://docs.jquery.com/UI/Dialog#event-beforeclose
Вы можете сделать что-то вроде проверки элемента, из которого было инициировано событие, и использовать его, чтобы определить, нажал ли пользователь X или нет, чтобы закрыть его, или что-то еще.