我正在尝试将div内容从一个地方复制到另一个地方,为此我使用的是:
$('#newDiv').html($('#oldDiv').html());
问题是某些子元素使用bind()jquery方法附加了事件。我想将这些事件复制到新位置。
有关这种“事件复制”方法的任何想法吗?
答案 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/
应该做得很好。