2013-03-12 133 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); 
}); 
});