我使用以下代码打开一个对话框:
<li>
<input type="button" value="Preview" onclick="showPreview('EmailPreview');" />
</li>
<div id="dialog">
</div>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function () {
$('#dialog').dialog({
autoOpen: false,
modal: true,
height: 525,
resizable: false,
width: 600,
dialogClass: 'timer'
});
});
//]]>
</script>
</div>
在我的.js文件中:
function showPreview(action, id) {
$.get("/Manage/Account/" + action + "/" + id, function (data) {
$("#dialog").html(data);
$('#dialog').dialog('open');
$('#Area, #Exchange, #Number').autotab_magic().autotab_filter('numeric');
$("#dialog input[type='button'], #dialog select,#dialog input:checkbox,#dialog input:radio,#dialog input:file").uniform();
});
我在3个地点使用这个确切的代码。在一个地方,一切都很完美。在其他2个位置,完全相同,只是在不同的视图中,对话框将打开但不关闭。有什么明显的东西我不见了吗?
这是在dialogbox-view中:
<div class="top"><a onclick="$('#dialog').dialog('close'); return false"><img src="/public/images/admin/btn-close.png" /></a></div>
答案 0 :(得分:1)
我没有看到任何对话框在任何地方关闭,您可以使用此功能关闭对话框:
$('#dialog').dialog('close');
有关它的更多信息:jQueryUI dialog
此外,任何元素都必须具有唯一ID,因此它应该类似于#dialog-a
,#dialog-b
,否则ID选择器会出现错误等。
答案 1 :(得分:1)
您的对话框元素ID必须是唯一的,否则jQuery将找不到合适的ID元素。