我有一个模式窗口。我想要做的是在模式打开时从页面中删除某些元素,并在模式关闭后将它们添加回原来的位置。我不想显示:无,因为只隐藏它们,我需要它们实际上从页面中删除。所以我有一个jQuery删除,并将其添加回来后,一个计时器只是为了测试...从DOM中删除元素并将其添加回他们所在的位置
更新:随着这些代码的增加,它现在抓取元素之前,然后将其添加回相同的元素。问题是,如果该元素也被删除,该怎么办?然后它不会重新加入!此外,不会在这个JavaScript事件处理程序丢失?我开发了一个插件,所以它应该尽可能少地干扰网站,但是3D元素在Safari中存在一个无法绕开的bug。
任何想法如何我可以暂时删除3D元素,而不会干扰人们的网站太多?
$3delements = $('*').filter(function(){return $(this).css('-webkit-transform-style') == 'preserve-3d'});
$3delementsposition = $3delements.prev()
//On modal open
$3delements.remove();
//On modal close
$3delementsposition.after($3delements);
的问题是,这需要我在DOM他们回来在指定某一个地方,我想元素回来在原来的位置。我如何确保这些元素不会改变/移动/丢失.append上的.remove信息。
指定“位置“ 在这种情况下。它的容器内容中的元素的顺序是什么?他们是深度还是兄弟姐妹?你有轴承,我们可以锚定一个查询,所以我们可以相对位置? – Joseph 2012-04-19 05:31:32
我已经对代码做了一些更改,看看他们是否回答你的问题... – alt 2012-04-19 05:41:27
尽管jQuery中有可能获取DOM中元素的深度和位置,但我认为无法获得确切的位置它的兄弟姐妹中的元素。考虑一下:如果我们预先/附加/删除了兄弟姐妹或者更糟糕的话,那么通常替换内容,那么实际位置现在已经消失了。 – Joseph 2012-04-19 05:47:15