将事件从子元素复制到不同的div

时间:2012-04-20 13:36:15

标签: javascript jquery events

我正在尝试将div内容从一个地方复制到另一个地方,为此我使用的是:

$('#newDiv').html($('#oldDiv').html());

问题是某些子元素使用bind()jquery方法附加了事件。我想将这些事件复制到新位置。

有关这种“事件复制”方法的任何想法吗?

2 个答案:

答案 0 :(得分:2)

描述

您可以在复制内容时创建动态内容。

您需要jQuery .live()delegate()方法将事件绑定到动态创建的html。

根据您使用的jQuery版本,选择.live()delegate()

  

.live()自jQuery 1.3起可用。为现在和将来与当前选择器匹配的所有元素附加事件处理程序。

     

.delegate()自jQuery 1.4.2起可用。根据一组特定的根元素,为现在或将来与选择器匹配的所有元素的一个或多个事件附加一个处理程序。

查看我的示例和此jsFiddle Demonstration

示例

<div id="newDiv"></div>
<div id="oldDiv"><a>click me</a></div>​

​$("a").live("click",function() {
   alert("click"); 
});​

// copy content
$('#newDiv').html($('#oldDiv').html());

更多信息

答案 1 :(得分:0)

如果您使用jquery Clone方法,您可以设置一个参数,指定您是否要保留事件......请查看:http://api.jquery.com/clone/

应该做得很好。