9

单击“保存”或“取消”时,我有一个对话框模式没有关闭。我与jQuery UI 的官方演示页面进行了比较,似乎无法找到为什么这不起作用。

这是我所拥有的:

 $(function () {
            $("#DetailsWindow").dialog({
                autoOpen: false,
                resizable: false,
                height: 500,
                width: 600,
                modal: true,
                title: 'Appointment Details',
                buttons: {
                    "Save": function () {
                        $(this).dialog("close");
                    },
                    "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });

            $('button').click(function () {
                $("#DetailsWindow").dialog("open");
            });
        });

HTML:

 <button>A button</button>
        <div id="DetailsWindow">
            <h3>Title</h3>
            <span>Some Text</span>
        </div>
4

2 回答 2

15

您的$('button')查询应该更具限制性,否则它会匹配<button>页面上的所有标签,包括 jQuery 对话框中的标签,从而导致它继续打开。

我建议在您的主按钮中添加一个类:

<button class="open-details">A button</button>

然后将您的 JavaScript 更改为:

$('button.open-details').click(function() {
    $("#DetailsWindow").dialog("open");
});
于 2012-05-10T20:59:47.077 回答
1

尝试使用:

 $(this).dialog('destroy').remove();

代替:

 $(this).dialog("close");
于 2012-10-15T06:32:31.013 回答