2

我想使用 JQuery UI Dialog 小部件在我的页面上显示一个弹出屏幕。

为了实现这一点,我<div class="popup-placeholder">在我的页面上有一个。实际上页面上不止一个(如果这对解决方案有影响)

单击按钮时,我正在初始化对话框并“打开”它。弹出窗口的初始化是在点击动作内部,因为它应该进行 Ajax 调用以获取弹出窗口的内容。(我尝试从点击事件中取出初始化,但没有奏效$('div.popup-placeholder').dialog();

    var popupContext = $('#' + contextControl.id + ' > .popup-placeholder');
    popupContext.html(formHtml);

    $(popupContext).dialog({
        bgiframe: true,
        modal: true,
        autoOpen: false,
        closeOnEscape: false,
        dialogClass: '',
        draggable: true,
        position: 'center',
        resizable: false,                                    
        width: 600
    });

单击操作按钮时,表单会显示并执行应有的操作。现在,我在弹出窗口上有一个关闭链接,它不是对话框按钮,而只是另一个绑定了事件的链接。它这样做...

$('#popup-placeholder-61').dialog('close');

其中 #popup-placeholder-61 与 $(popupContext) 相同

我现在面临的问题是,在关闭弹出窗口时,相同的操作按钮不会再次显示弹出窗口。问题似乎是<div class="popup-placeholder">已从标记中删除。

我尝试了下一页上的解决方案,但没有帮助 - StackOverflow 上的 Jquery Dialog Close

所以,我需要更多帮助

4

4 回答 4

2

经过一番挣扎,我想出了一个最佳解决方案。请使用下面的行而不是 dialog('close')

$('#popup-placeholder-61').dialog("destroy");

这将允许 div 保持其位置

于 2015-07-09T02:45:58.540 回答
1

我的问题已经解决,但我将研究为什么我之前的方法不起作用。我之前所做的是我有多个具有不同 ID 的占位符,并且我只将其中一个作为对话框。我使用了一些 Jquery 选择器来为对话框选择适当的 div,并且遇到了上述问题。

我现在做的唯一改变是我有一个 div 作为占位符。现在可以了。它在我的活动之外也初始化得很好。那么,也许这与我的选择器有关?我会尝试更多,如果我发现一些东西会作为跟进发布。

谢谢。

于 2010-02-12T12:02:10.427 回答
0

尝试将初始化代码从点击事件中取出,可能是通过再次尝试重新绑定所有内容,它无法在第二次点击时弹出对话框......我有一个类似的问题,我通过创建标记“解决”了每次要打开对话框时的对话框。

您的问题的 ajax 位不会阻止您从 click 事件中进行初始化,只需在 click 事件上加载您的 ajax 内容并使用 dialog('open') 显示对话框。

于 2010-02-12T10:58:34.410 回答
0

主要问题是我在错误的位置寻找对话框 div。

有关更多详细信息,请参阅此帖子...

Jquery Dialog - 初始化后div消失

于 2010-02-16T15:45:00.427 回答