2017-04-08 35 views
1

我有一個元素,如拖放和1單擊事件處理程序的屬性。我已經克隆了這個元素,並發現克隆的元素具有事件處理函數,只要原始元素仍在DOM中。然而,當我從DOM中刪除原始事件時,事件處理程序被銷燬。我的代碼有云:刪除原始後在克隆的元素中使用事件處理程序

el = $(@id).clone(true) 
$('#container').packery('addItems', el) 
el.appendTo('#container') 
$('#container').packery('layout') 
$('#lowerContainer > ' + @id).remove() 

el事件處理程序,只要不添加的最後一行的作品。但是,添加$('#lowerContainer > ' + @id).remove()殺死處理程序。有沒有人知道我怎樣才能保持處理程序克隆的元素,即使刪除原來的?提前致謝!

回答

0

你應該定義在容器而不是單個項目的點擊處理程序:

$('#container').on('click', '.item', function() {...}); 

在這種情況下它會處理的點擊在現有項目上的人後來補充。

+0

對於事件委託語法是錯誤的,目標選擇器應該是'on()'的參數 – charlietfl

+0

@charlietfl的確是固定的。 –