2016-02-25 37 views
1

工作我有以下HTML頁面:jQuery的深克隆不與插件相連元素

<html> 
<head> 
<title>Table</title> 
<link href="style.css" type="text/css" rel="stylesheet"> 
<link href="bootstrap-toggle.min.css" type="text/css" rel="stylesheet"> 
<link href="bootstrap.min.css" type="text/css" rel="stylesheet"> 
</head> 
<body> 
<div id="outer" class="col-md-12"> 
    <div class="col-md-6" id="old"> 
     <input type="checkbox" class="chck" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger"> 
    </div> 
    <div class="col-md-6" id="new"> 

    </div> 
</div> 

<script src="jquery.js"></script> 
<script src="my.js"></script> 
<script src="bootstrap-toggle.min.js"></script> 
</body> 
</html> 

引導-toggle.min.js轉換複選框變成美麗的撥動開關。我克隆上述複選框,並使用下面的代碼追加到「ID =新的」分區:

var clone = $('#old').clone(true, true).appendTo('#new'); 

代碼工作得很好,並追加克隆元素的整個HTML副本。

但問題是,兩個切換開關不能單獨在個人層面上工作。只有第一個切換開關響應所有開關上的點擊操作。

爲什麼深度jQuery克隆不保留附加到每個克隆元素的插件?

即使我改變了HTML作爲使用類

<div class="col-md-6 first"> 
     <input type="checkbox" checked="checked" data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger"> 
    </div> 
    <div class="col-md-6 second"> 

    </div> 

var clone = $('.first').clone(true, true).appendTo('.second'); 

這段代碼也同樣表現與舊下方。

回答

1

你意識到ID必須是唯一的頁面是?它看起來像你克隆基於id的東西,然後再次將其附加到頁面而不改變它的id,這將使它非唯一和無效的html。

+0

好吧,讓我試試使用類 –

+0

可能不是整個問題,但肯定是一種氣味。 – Taplar

+0

代碼也不起作用。我已經更新了這個問題 –