我有一個模式窗口。我想要做的是在模式打開時從頁面中刪除某些元素,並在模式關閉後將它們添加回原來的位置。我不想顯示:無,因爲只隱藏它們,我需要它們實際上從頁面中刪除。所以我有一個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