jQuery UI对话框不会关闭

时间:2012-06-14 15:54:24

标签: javascript jquery jquery-ui

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

<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> 

2 个答案:

答案 0 :(得分:1)

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

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

有关它的更多信息:jQueryUI dialog

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

答案 1 :(得分:1)

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