1

我正在使用 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?

我已经尝试了很多我在 SO 上找到的答案,但似乎没有一个有效。

更新:

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

暂时去了:

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

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

4

2 回答 2

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;
}

代码取自此处给出的示例

于 2012-04-29T22:05:52.033 回答
0

创建一个临时变量来存储之前的 div detaching

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"));
于 2012-04-29T22:13:44.427 回答