我使用這個對話框:http://docs.jquery.com/UI/Dialogjquery ui對話框 - 活不工作?
要打開對話框我做這種方式:
$('a.openModal').live("click", function() {
var idArr = $(this).attr('id').split("OpenNote");
var id = idArr[1];
alert($(".modalNote#dialog-modal" + id).html());
$(".modalNote#dialog-modal" + id).dialog('open');
return false;
});
該對話框用於點擊標題時顯示筆記的內容。當我在頁面加載生成HTML時,然後這工作正常,但如果我動態添加HTML然後對話框將無法打開。它附加到div時也不會隱藏。
是否可以在「on-fly」中打開它?
編輯1:
我想這一點,但仍然沒有...
$(document).delegate('a.openModal', 'click', function() {
var idArr = $(this).attr('id').split("OpenNote");
var id = idArr[1];
alert($(".modalNote#dialog-modal" + id).html());
$(".modalNote#dialog-modal" + id).dialog('open');
return false;
});
編輯2:
下面是完整的,簡化的例子:
HTML:
<div id="mlist">
<!-- Modal for Viewing a Saved Note (called by a.modal4) -->
<div class="modalNote2" id="dialog-modal106" title="Test (10.6.2010)">
Content...
</div>
<!-- End of Modal -->
</div>
<a href="#" class="openModal2">Add new</a>
個
JS:
//Global Script for Calling a Fourth Modal with a class of "modal4"
$(".modalNote2").dialog({
autoOpen: false,
width: 500,
height: 375,
position: ['center', 'center'],
modal: true
});
$("#mlist").append("<div class=\"modalNote2\" title=\"Test (10.6.2010)\">fghfghfghfghfghsdf</div>");
$(document).delegate('a.openModal2', 'click', function() {
$(".modalNote2").dialog('open');
return false;
});
當我點擊鏈接,新模式的div添加,當前一個被打開,但新的不和正在顯示它。
編輯3
我按照這些指令,如果我做這樣的事情都簡單得多:http://blog.nemikor.com/2009/08/07/creating-dialogs-on-demand/
var $loading = $('<img src="/Content/images/ajax-loader.gif" alt="loading">');
$('.openModal').each(function() {
var $dialog = $('<div></div>')
.append($loading.clone());
var $link = $(this).one('click', function() {
$dialog
.load($link.attr('href'))
.dialog({
title: $link.attr('title'),
width: 500,
height: 300
});
$link.click(function() {
$dialog.dialog('open');
return false;
});
return false;
});
});
但問題的Ajax生成的鏈接仍然停留。
編輯4 - 已解決!
最後,我找到了解決辦法!
var $loading = $('<img src="/Content/images/ajax-loader.gif" alt="loading">');
$(document).delegate(".openModal", "click", function() {
var $link = $(this);
var $dialog = $('<div></div>')
.append($loading.clone())
.load($link.attr('href'))
.dialog({
autoOpen: false,
title: $link.attr('title'),
width: 500,
height: 300
});
$dialog.dialog('open');
return false;
});
標記是什麼樣的?你是否收到警報? – 2010-06-10 13:30:48
我又上傳了問題。我沒有在螢火蟲任何警報,如果這就是你的意思 – 2010-06-10 13:57:16
*上傳=更新:) – 2010-06-11 06:17:58