我正在尝试将div内容从一个位置复制到另一个位置,为此,我使用如下内容:
$('#newDiv').html($('#oldDiv').html());
问题是一些子元素使用bind() jquery方法附加了事件。我想把这些事件也复制到新的位置。
有没有办法做这个“事件复制”?
发布于 2012-04-20 13:38:48
描述
您可以在复制内容的瞬间创建动态内容。
您需要使用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());
更多信息
发布于 2012-04-20 13:39:25
如果您使用jquery Clone方法,您可以设置一个参数来指定是否要保留事件...查看:http://api.jquery.com/clone/
它应该会做得很好。
https://stackoverflow.com/questions/10247356
复制相似问题