Ни один из первых двух ответов не работал для меня с несколькими элементами, которые могут открывать диалоги, указывающие на разные страницы.
Это похоже на самое чистое решение, он только один раз создает объект диалога при загрузке, а затем использует события для соответствующего открытия / закрытия / отображения:
$(function () {
var ajaxDialog = $('<div id="ajax-dialog" style="display:hidden"></div>').appendTo('body');
ajaxDialog.dialog({autoOpen: false});
$('a.ajax-dialog-opener').live('click', function() {
// load remote content
ajaxDialog.load(this.href);
ajaxDialog.dialog("open");
//prevent the browser from following the link
return false;
});
});