2013-02-03 88 views
0

我在我的js腳本中發生了一件奇怪的事情。jquery insertAfter()也插入克隆

當執行點擊功能,一個元件應該被插入下面另一個,但由於某些原因,元件克隆插入有作爲

怎麼回事?克隆發生在點擊功能之外。

請幫我理解發生了什麼。

http://jsbin.com/unenil/1/edit

$("button").click(function() { 
    $(".one").insertAfter(".two"); 
    $(".status").text("done"); 
}); 


var clone_one = $(".one").clone(); 
var clone_two = $(".two").clone(); 
$("body").append(clone_one); 
$("body").append(clone_two); 

基本上,我不明白爲什麼在這種情況下,點擊功能有什麼用這需要它的地方以外的克隆。

回答

1

克隆的元素有one類,所以他的克隆也是。因此,$(".one")包含克隆和克隆。

一個解決方案是保留原來的元素的引用,並插入:

var original = $(".one"); 
var clone_one = original.clone(); 
var clone_two = $(".two").clone(); 
$("body").append(clone_one); 
$("body").append(clone_two); 

$("button").click(function() { 
    original.insertAfter(".two"); 
    $(".status").text("done"); 
}); 
+0

多麼愚蠢我的OFC! – user1721135

+0

會不會是一樣的?兩人仍然有相同的班級。我在想使用remove/addclass來區分它們。 – user1721135