克隆对象不可删除

时间:2009-07-31 19:34:37

标签: jquery clone droppable

我正在尝试使用Jquery克隆可放置的对象,但克隆的对象不可放置。

$(document).ready(function(){
$("input[value='Add']").click(function(e){
e.preventDefault();
$("div.field:last").clone().insertAfter("div.field:last");
});

$(".field").droppable();

HTML

<div class="field">
Last Name<input type="text" value="" />
First Name<input type="text" value="" />
</div>
<div class="field">
Last Name<input type="text" value="" />
First Name<input type="text" value="" />
</div>
<input type="Submit" name="submit" value="Add" /> 

Firebug显示克隆对象也有类ui-droppable,不知道为什么它不起作用?

修改
使用.droppable()设置bool(true)或链接克隆对象不起作用

2 个答案:

答案 0 :(得分:3)

您需要将事件复制到克隆;将 true 传递给 clone()

$("div.field:last").clone(true).insertAfter("div.field:last");

您可能还需要复制原始文件中的一些数据:

var original = $("div.field:last");
var clone = original.clone(true);
clone.data( 'droppable', jQuery.extend(true, {}, original.data('droppable')) );
/* Untested! */

答案 1 :(得分:0)

我找到了一种方法来实现这一点,通过使用.live,我使用的插件.livequery的功能与.live非常相似

  

绑定“live”事件时,它将绑定到页面上的所有当前和未来元素

$("input[value='Add']").livequery("click", function(e){
e.preventDefault();
$("div.field:last").clone().insertAfter("div.field:last");
$("div.field").droppable();