2013-03-12 64 views
0

我做了一些快速的“添加到收藏夹”类型的程序来练习。你点击一个“最喜欢的”框并将其添加到边栏。使用.append()时,原始对象消失

这里的jsfiddle:http://jsfiddle.net/LCBradley3k/sdKgP/

的Javascript:

$(document).ready(function(){ 
    var favorites = []; 
    var counter = 0; 

    $('#container, #container2, #container3').click(function(){ 
     favorites.push($(this))    
     $('.favorite').append(favorites); 
    }); 
}); 

我想它继续做它,但不能让原来的容器消失。

此外,不是说$(container 1, 2, 3, etc),它有一种方法,它只是知道哪个容器被点击,然后移动该特定的容器。就像我有50个容器一样?我不想将它们全部列出。使用

回答

0

尝试jQuery的clone()

$('#container, #container2, #container3').click(function(){ 
    $(this).clone().appendTo('.favorite'); 
}); 
2

这里是工作的jsfiddle http://jsfiddle.net/9Dmcg/3/

给容器类和绑定到类。

$('.containers').bind('click', function(){ 

    favorites.push($(this).clone()) 

    $('.favorite').append(favorites); 
}); 

看起来jcubic有克隆

+0

你的意思是包装在一个div所有的容器? – 2013-03-12 20:46:40

+0

只有一个人可以回答这两个问题,但我会派一个新的小提琴让OP更容易理解。 – BinaryTox1n 2013-03-12 20:47:57

+1

@JamesMitchell不,为什么包装所有的容器?你想在点击任何容器时执行该操作。创建一个容器类并将该类放在每个新的容器上。这样它就会绑定到实际的容器点击,让你捕获$(this) – 2013-03-12 20:48:06

0

您可以使用克隆jQuery函数的语法正确http://jsfiddle.net/sdKgP/1/

$('#container, #container2, #container3').click(function(){ 

    favorites.push($(this).clone()) 

    $('.favorite').append(favorites); 
}); 
0

试试这个http://jsfiddle.net/sdKgP/25/

你应该得到的容器的id骑。在你的情况下,你可能有很多书签容器,所以你不想为每一个添加CSS。所以你也需要改变你的CSS。

CSS

#sidenav { 
height:700px; 
width:250px; 
border: 1px solid rgb(150,150,150); 
position:absolute; 
display:inline; 
float: right; 
left: 125px; 
} 

.container { 
height:50px; 
width:75px; 
border:1px solid #000; 
position:relative; 
margin-bottom:10px; 
} 

DOM

<div style="float:left"> 
<div class="container"> 
Favorite 
</div> 

<div class="container"> 
    Favorite 
</div> 

<div class="container"> 
    Favorite 
</div> 
</div> 
<div> 
<div id="sidenav"> 
    <div class="favorite"> </div> 
</div> 
</div> 

JS:

$(document).ready(function(){ 
    var favorites = []; 
    var counter = 0; 
    $('.container').click(function(){ 
    favorites.push($(this).clone()); 
    $('.favorite').append(favorites); 
}); 
});