【问题标题】:Cannot reopen jquery ui dialog after closing it关闭 jquery ui 对话框后无法重新打开它
【发布时间】:2011-01-14 09:00:12
【问题描述】:

我的网站上有一个链接,可以在 jquery ui 对话框中打开来自不同网页的 html 内容:

var $otherDialogContainer = $('#other-dialog');

$('a.link').click(function() {
    $otherDialogContainer.load('/controller/action', function() {
        $otherDialogContainer.dialog({
        title: 'Hello',
            width: 600,
            height: 400,
            position: 'middle',
            resizable: false
        });
    });
    return false;
});

在对话框中打开的 html 中有一个关闭对话框的按钮,如下所示:

$('.closeDialog').click(function() {
        window.parent.$(".ui-dialog").remove();
    });

问题是,使用该按钮关闭对话框后,我无法重新打开它。如果我通过单击右上角的“x”图标关闭对话框,我可以毫无问题地重新打开它。

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-dialog


    【解决方案1】:

    .remove() 从 DOM 中删除对话框,因此不再有要打开的对话框:)

    你应该使用

    $otherDialogContainer.dialog('close');
    

    希望这会有所帮助!

    【讨论】:

    • 好吧,问题是它不会关闭对话框(它是来自外部源的 html 页面)。
    • 内容不是刚刚通过 ajax 加载到 DOM 中的 div 中,然后转换为成功事件的对话框吗?肯定还能用吗?对不起,如果我误解了!
    • 是的。但是关闭对话框的按钮在对话框内。所以它在来自外部源的 HTML 中。 $otherDialogContainer.dialog('close');不能在对话框内工作。
    • 在对话框中添加另一个 DIV 并将您的 ajax 加载到其中吗?然后将关闭按钮放在加载的 DIV 之外,但仍在 Dialog 内?
    • @Chris 好的,问题是我没有使用 jquery ui 对话框“按钮”选项。我只是用 HTML 手动将按钮放在那里。当我使用 jquery ui 按钮时,它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2012-11-10
    • 2011-11-20
    • 2012-12-04
    相关资源
    最近更新 更多