JQuery:将行为传递给克隆对象

时间:2010-12-12 15:13:16

标签: jquery cloning

我正在尝试通过将clone()方法绑定到doubleclick事件来快速创建类的副本。到目前为止,我的代码是:

<style type="text/css">
.draggable { float:left; clear: both; }
</style>
<script type="text/javascript">
$(function() {
    copyit = function() {
        $(this).clone().appendTo("body").css('position','absolute').draggable();
    }
    $('.draggable').dblclick(copyit);
    $('.draggable').draggable();
});
</script>

<div class="draggable">Hi There!</div>
<div class="draggable">What's up?</div>

一切正常,除非我将克隆元素添加到DOM后无法克隆自己。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我的猜测是你没有将dblclick事件绑定到新的DOM节点。在这种情况下,您实际上有两种方法可以实现此目的:

  1. 您可以使dblclick成为一个实时(或委托)事件,如下所示: $('。draggable')。live('dblclick',copyit); 看到: http://api.jquery.com/live/ http://api.jquery.com/delegate/

  2. 您可以通过将其传递为true来使克隆复制对象的事件,如下所示: 。$(本).clone(真).appendTo( “身体”)的CSS( '位置', '绝对')可拖动(); 看到: http://api.jquery.com/clone/

答案 1 :(得分:1)

使用.live()设置双击处理程序:

$('.draggable').live("dblclick", copyit);