2012-07-28 47 views
0

沒關係....我用活的,它似乎工作...jQuery的 - 克隆行失去功能

我有一個包含表單元素表。當用戶輸入一個新值並點擊添加按鈕時,表格的最後一行被克隆,輸入字段被更新爲新信息。另外,每一行都包含一個刪除圖標。當用戶單擊刪除圖標時,它所屬的行被刪除。

我所有的工作......

除了,克隆行的刪除圖標無法正常工作。當你點擊它並且我嘗試了各種各樣的東西時,沒有任何反應,但是似乎無法弄清楚那一部分......我剛開始像一個月前一樣使用jquery,並且認爲我錯過了某些明顯的東西,但不知道是什麼。 ..

我穿上的jsfiddle的代碼,我希望有人可以幫幫忙:

http://jsfiddle.net/sMqcB/

+0

不要使用'.live',使用'.delegate'。 – 2012-07-28 17:38:25

+0

大家知道,'.live'已被棄用 - 您應該使用'.delegate'方法,而不是像上面的@ExplosionPills註釋那樣。如果你能保證你總是使用支持它的jQuery版本,那麼可以使用'.live',但我懷疑在某些時候你會想要升級。 – ClarkeyBoy 2012-07-28 17:40:45

回答

0

,因爲這些都是新的元素注入到DOM。它不知道你已經定義的現有點擊事件。

解決方案:使用jQuery的on方法。

變化

$('img.seminars-faux-remove').click(function() { 
    $(this).closest('tr').remove(); 
}); 

$(document).on("click",'img.seminars-faux-remove',function() { 
    $(this).closest('tr').remove(); 
}); 

jQuery的on將爲當前和未來元素的工作。這個方法可以從jQuery 1.7+開始使用。如果您使用的是舊版本的jQuery,則可以考慮使用live。但是如果你使用1.7+,你應該使用jQuery on 應該

0

您可以使用.clone(true)而不是.clone()來保持功能。請參閱.clone()文檔,特別是[withDataAndEvents]參數的含義。

DEMO