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

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


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

关于执行此“事件副本”的方式有任何想法吗?

最佳答案

描述

您在复制内容的那一刻就创建了动态内容。

您需要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());




更多信息


jQuery.live()
jQuery.delegate()
jsFiddle Demonstration

关于javascript - 将事件从子元素复制到不同的div,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10247356/

10-12 12:38
查看更多