2010-08-21 123 views
0

我有以下简单的代码,在那里我双击一个div(与级集装箱),它是简单地克隆本身内部的div内(id为遏制,包装) :克隆一个div,然后从孩子再次克隆

HTML

<span class="container">div one</span> 

<div id="containment-wrapper"> 
</div> 

jQuery的

$(".container").dblclick(function() { 

     $(this).clone().appendTo('#containment-wrapper'); 
}); 

当我双击原来的div,它本身克隆并提出遏制,包装内一个div但是当我双击克隆DIV,它不会做任何事情,即使它有类=容器,这是为什么发生了什么?我尝试了许多不同的方法来克隆它,但没有任何工作。

回答

2

这是因为该事件处理函数不是克隆。使用delegate代替:

$(".container").delegate("","dblclick",function() { 
    $(this).clone().appendTo('#containment-wrapper'); 
}); 
2

因为DBLCLICK是无界的新的div。你想达到什么可以live

$(".container").live('dblclick', function() { 

     $(this).clone().appendTo('#containment-wrapper'); 
}); 
1

轻松完成既然你动态添加div标签,他们不会自动绑定到您指定的.dblclick功能。使用事件处理程序是一种解决此问题的方法。