Jquery UI对话框删除问题

时间:2012-01-16 09:33:01

标签: javascript jquery jquery-ui

从这个问题回来

Multiple Dialog

我能够解决问题,但现在的问题是它删除了div,所以当我访问该Div时它会给出错误。它给出了错误,因为当我打开对话框时,在关闭后删除它会正常工作

我不想删除jQuery('#divPopup')如果只有一个div存在。如果有多个jQuery('#divPopup'),那么remove()应该可以正常工作。

jQuery('.register_button_class').live('click',function () {

    var iFrameobj = createIframe('',iframeUrl);
    jQuery('#divPopup').html(iFrameobj);
    createDialogWithClose(url,'#bodyId');

    return false;
});

Dummy Div for Dialog Popup,当点击关闭Jquery Ui Popup时,这将被删除。  所以,当我说

jQuery('#divPopup').html(iFrameobj);

它给出了错误。

<div id="divPopup"></div>

2 个答案:

答案 0 :(得分:1)

我假设你的功能:

createDialogWithClose(url, '#bodyId');

关闭它时,从DOM中删除div id="divPopup"

我建议最初不要在你的标记中包含那个div,并改变你的函数来创建div并在运行时将它附加到DOM。然后删除就像你已经在做的那样。


jQuery('.register_button_class').live('click',function () {

    var iFrameobj = createIframe('',iframeUrl);
    jQuery("body").append("<div id='divPopup' />").html(iFrameobj);
    createDialogWithClose(url,'#bodyId');

    return false;
});

很难说您发布的这些代码可能会遇到其他问题,但是,jQuery("body").append("<div id='divPopup' />").html(iFrameobj);每次运行该函数时都会创建divPopup。因此,当您关闭它并将其删除时,它将在下次单击该按钮时再次创建。

编辑:如何检查Div是否存在 -

if ($("#divPopup").length > 0){
   // do something here
}

答案 1 :(得分:0)

我这样解决了

var length = jQuery('#divPopup').length;
if(length>1)
{
    jQuery('#divPopup').dialog('destroy').remove();

}else
{
    jQuery('#divPopup').dialog('destroy');
}