您可以使用事件和数据克隆元素,但事件仍然适用于原始对象而不是新对象。你如何克隆事件和数据克隆,但适用于最新的克隆?
我已经使用的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