您可以使用事件和數據克隆元素,但事件仍然適用於原始對象而不是新對象。你如何克隆事件和數據克隆,但適用於最新的克隆?
我已經使用的jsfiddle證明問題:http://jsfiddle.net/VZZG4/
重現: 1.點擊克隆按鈕 2.在新的文本輸入,類型爲「新建」 3.打新克隆按鈕 實際結果:最新的克隆說「測試」 預期結果:最新的克隆說「新」
問題:如何克隆事件和數據克隆,但適用於最新的克隆?
您可以使用事件和數據克隆元素,但事件仍然適用於原始對象而不是新對象。你如何克隆事件和數據克隆,但適用於最新的克隆?
我已經使用的jsfiddle證明問題:http://jsfiddle.net/VZZG4/
重現: 1.點擊克隆按鈕 2.在新的文本輸入,類型爲「新建」 3.打新克隆按鈕 實際結果:最新的克隆說「測試」 預期結果:最新的克隆說「新」
問題:如何克隆事件和數據克隆,但適用於最新的克隆?
用最接近()克隆預期的元素...
$(document).ready(function() {
$('#clone').click(function() {
$(this).closest('#container').clone(true).appendTo('#wrap');
});
});
,我建議你使用class
代替id
的。重複id
是無效的HTML。
您犯了一個錯誤,即使用ID克隆對象。在大多數瀏覽器中,如果您有多個具有相同ID的元素,則會返回第一個元素。因此$('#container')
將始終返回值爲Test
的第一個值。
給出應該克隆類的元素。
HTML:
<div id="wrap">
<div class="container">
<input type="text" class="edit" value="Test">
<input type="button" class="clone" value="Clone">
</div>
</div>
的JavaScript:
$(document).ready(function() {
$('.clone').click(function() {
$(this).closest('.container').clone(true).appendTo('#wrap');
});
});
檢查你的代碼http://jsfiddle.net/VZZG4/2/
參考修改後的版本:closest
使用最接近()似乎是答案。不好意思,我匆匆把那個測試用例放在一起。無論如何,這一切都很好,直到你嘗試將它應用到trovster的重複/刪除jquery插件...(http://www.trovster.com/lab/plugins/duplicate-remove/) – HM2K 2011-01-11 12:31:03