我正在尝试使用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)或链接克隆对象不起作用
答案 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();