jquery在弹出窗口关闭时重新附加div

时间:2012-04-29 22:00:21

标签: jquery popupwindow

我正在使用jQuery打开一个效果很好的弹出窗口,但我也认为#content div与“父”页分离...

$('.newWindow').click(function(ev){

window.open('popout.html','pop out','width=400,height=345');
ev.preventDefault();
$('#content').detach();
return false;

});

使用的链接:

<a href="popout.html" rel="0" class="newWindow">Pop Out Window</a>

当弹出窗口关闭时,如何“重新附加”该div?

我已经尝试了很多我在这里找到的答案,但似乎都没有。

更新

似乎我的浏览器缓存了弹出窗口,因为当我查看源代码时(通过右键单击查看源代码)我注意到我所做的任何更改IE新的JS代码都没有那么关闭浏览器并重新打开并且嘿presto代码编辑在哪里...

暂时离开了:

window.onunload = function(){
  window.opener.location.reload();
};

刷新子关闭时的父页面,但仍然更喜欢重新附加方法。

2 个答案:

答案 0 :(得分:0)

你可以尝试

var p; // where p may be of global scope

$('.newWindow').click(function(ev){

window.open('popout.html','pop out','width=400,height=345');
ev.preventDefault();
 p = $('#content').detach();
return false;
});

//关闭窗口

if(p){
 p.appendTo("body");//or where ever you want it to append
 p = null;
}

代码来自给定here

的示例

答案 1 :(得分:0)

创建一个临时变量以在detaching之前存储div。

var content; // temp storage

$('.newWindow').click(function(ev){

     window.open('popout.html','pop out','width=400,height=345');
     ev.preventDefault();
     content = $('#content');
     content.detach();
     return false;
});

当您需要再次在DOM中重新连接时,只需使用.appendTo()

content.appendTo($("#whereToReAttach"));