-1

我正在使用以下代码打开一个对话框:

<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 个位置使用这个确切的代码。在一个位置,一切都完美无缺。在其他两个位置,完全相同,只是在不同的视图中,对话框将打开但不会关闭。我有什么明显的遗漏吗?

这是在对话框视图中:

 <div class="top"><a onclick="$('#dialog').dialog('close'); return false"><img src="/public/images/admin/btn-close.png" /></a></div> 
4

2 回答 2

1

我没有看到任何对话框在任何地方关闭,您可以使用此功能关闭对话框:

$('#dialog').dialog('close');

有关它的更多信息:jQueryUI 对话框

此外,任何元素都必须具有唯一的 ID,因此它应该类似于#dialog-a, #dialog-b,否则 id 选择器等会出现错误。

于 2012-06-14T15:59:52.427 回答
1

您的对话框元素 ID 必须是唯一的,否则 jQuery 将找不到正确的 ID。

于 2012-06-14T16:30:56.547 回答