jQuery的追加()定位

Wor*_*sor 1 css jquery position append

我必须从我的网站上删除()一些iems,然后将它们追加回去,但当我确实附加它们时,它们会出现在不同的地方,而我希望它们完全显示在他们曾经的同一个地方.

对此有什么解决方法吗?

这是一个沙盒,随意更新(注意第一次附加后图像如何改变位置):

http://jsfiddle.net/Zt9tZ/1/

Jam*_*gne 5

也许我在这里缺少一些额外的信息,但为什么要完全删除它?有什么理由你不能只使用hideshow

http://jsfiddle.net/Zt9tZ/10/

附加的问题是您将元素作为最后一个添加到父级.如果由于某种原因你真的必须完全删除元素,你可以在其位置放置某种占位符.也许带有replaceWith一些不可见的元素,以后会再用原始元素替换掉.


或者,您可以跟踪最近的兄弟姐妹并使用insertBeforeinsertAfter.

编辑:一个例子insertAfter:

var image = jQuery(".image"); 
var prev;

jQuery("#remove").click(function(){
    prev = image.prev();
    image.remove();
});

jQuery("#append").click(function(){
    if(prev.length === 0){
        // element was first
        jQuery("#container").prepend(image);
    }else{
        image.insertAfter(prev);   
    }
}) 
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Zt9tZ/12/


EDIT2:示例replaceWith:

var image = jQuery(".image"); 
var replacement = $("<div></div>");

jQuery("#remove").click(function(){
    image.replaceWith(replacement);
});

jQuery("#append").click(function(){
    replacement.replaceWith(image);
}) 
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Zt9tZ/13/