我想使用jQuery UI对话框窗口小部件在页面上显示一个弹出屏幕。

为了实施我有一个 <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"> 已从标记中删除。

我在下一页尝试了解决方案,但没有帮助 -jQuery对话框在stackoverflow上关闭

所以,我需要更多帮助

有帮助吗?

解决方案 4

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

有关更多详细信息,请参见这篇文章...

jQuery对话框 - 初始化后DIV消失

其他提示

我的问题已经解决,但是我将研究为什么我的早期方法不起作用。我之前正在做的是,我有多个具有不同ID的位置持有人,而我只制作其中一个对话框。我使用了一些jQuery选择器为对话框选择适当的DIV,并存在如上所述的问题。

我现在所做的唯一改变是我有一个单一的div,它是占位符。现在有效。在我的活动之外,它也可以很好地初始化。所以,也许这与我的选择者有关?我会尝试更多,如果发现某事会将其发布为跟进。

谢谢。

经过一段时间的挣扎,我提出了一个最好的解决方案。请使用以下行而不是对话框(“关闭”)

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

这将允许Div保留其位置

尝试从单击事件中取出初始化代码,可能是通过尝试再次重新启动所有内容,它无法通过第二次点击打开对话框...我有一个类似的问题,我通过创建标记来为对话框每次打开对话。

您的问题的AJAX位并不能让您退出点击事件中的初始化,只需在单击事件上加载Ajax内容,然后显示对话框('Open')即可。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top