Может любой обеспечивать чистый пример того, как использовать UI JQUERY Модальное диалоговое окно. Удивительно это не столь просто, как Вы думали бы.
Цель:
нажатие на элемент загружает модальное
Модальное появляется, показывая "Загрузку..." И затем выполняет ajax вызов для получения содержания модального
Модальное может быть закрыто путем нажатия на завершение btn или путем нажатия Escape
Модальным может быть repopened, и когда он вновь открылся, он не показывает состояние предыдущего модального взаимодействия.
Спасибо!
Вот то, что я в настоящее время делаю, но это работает очень неуклюжее и не кажется вообще как умное решение. Идеи?
var $dialog = $('<div id="sharerdialog"></div>')
.html('<p>Loading...</p>')
.dialog({
autoOpen: false,
title: 'Share the item',
position: ['center',150],
width: 450,
focus:function(event, ui) {
$('#dialogcloser').click(function() {
$dialog.dialog('close');
});
},
open: function(event, ui) {
var title2use = document.title;
title2use = escape(title2use);
$("#sharerdialog").load("/items/ajax/share/index_beta.cfm?itemid=#itemID#&itemtitle=" + title2use);
}
});
// Bind the Share btn to Open the Modal
$('#itemshare').click(function() {
$dialog.dialog('open');
});
Основная проблема, которую я вижу в вашем коде, заключается в том, что вы не добавляете диалог в DOM, поэтому браузер не отображает его. Я предлагаю вам сначала попробовать:
var $dialog = $('<div id="sharedialog"></div>')
.html('<p>Loading....</p>')
.appendTo('body')
.dialog({...});
Чтобы вы добавили его в DOM, и браузер мог его отобразить.