2012-08-16 61 views
0

當我克隆使用jQuery的對象,如果它是一個選擇'onchange'事件變爲'onclick'。如何用jQuery克隆一個元素來保存所有的屬性和事件?已經使用.clone(true)。jQuery .clone變化onclick

這裏是JS代碼:

function addNovoPasseio (obj){ 
    newobj=$(".passeios").clone(true); 
    $(newobj).find("*").removeAttr('id'); 
    $(newobj).insertBefore("#addPasseio"); 
} 

這裏是我想要克隆的HTML代碼:

<div class="passeios"> 
    <div class="select-cidade"> 
     <label for="cidade">Cidade</label> 
     <select name="cidade" id="cidade" onchange="getBairros(this,$(this).parent().next().find('select'));" class="select-obr"> 
      <option value="-1">&nbsp;</option> 
      <option>Cidades</option> 
     </select> 
    </div> 
</div> 
<div class="botoeira" id="addPasseio"><button onclick="addNovoPasseio(this);">New</button></div> 
+0

什麼使你相信事件發生了變化? – j08691 2012-08-16 21:43:40

回答

-1

嘗試克隆這樣的:

.clone(true, true) 

您可以隨時檢查綁定到某個元素的事件:

$('selector').data('events') 
+1

'。數據(「事件」)'在1.8被刪除,你應該從來沒有使用過也無妨,因爲它的內部。 – Esailija 2012-08-16 21:48:47

+1

另外$('selector')。data('events')不會註冊添加內聯的事件。 – Nope 2012-08-16 21:49:13

+2

根據文檔,'.clone(真)'相同'.clone(真,真)'。 *「默認情況下,其值與第一個參數的值」*「匹配。 – 2012-08-16 21:50:19

0

它看起來像你正在尋找的不僅僅是一個普通的克隆,但更像是一個深拷貝更多的東西。

下載從deepCopy.js:http://oranlooney.com/deep-copy-javascript/

然後你可以用以下命令來創建一個備份:

var myCopiedItem = owl.deepCopy(myItem) 

希望這有助於!