jQuery中的clone()

时间:2012-11-11 10:40:44

标签: jquery clone

关注jQuery API

  

.clone([withDataAndEvents] [,deepWithDataAndEvents])

     
    

deepWithDataAndEvents 一个布尔值,指示是否应复制克隆元素的所有子项的事件处理程序和数据。默认情况下,其值与第一个参数的值匹配(,默认为false )。

  

这是我的代码:

HTML:

<div id="d1">Click this paragraph to increase text size.<p id="p1">This is another</p></div>
<button>Click me</button>

Javascript:

$("button").click(function(){
    var para = $("#d1:first").clone(true);
    $("body").append(para);
});
$("#d1").click(function(){
   $(this).animate({fontSize:"+=1px"});
});
$("#p1").click(function(){
   $(this).css({color:"green"});
});

当我点击按钮时,#p1变为绿色。关注api我使用 clone(true),deepWithDataAndEvents必须为false且#p1不能受影响。我使用jQuery v1.8.2

1 个答案:

答案 0 :(得分:1)

看起来您误解了文档中的部分内容:

  

deepWithDataAndEvents 一个布尔值,指示是否应复制克隆元素的所有子项的事件处理程序和数据。 按   默认值与第一个参数的值匹配(默认值   为假。)

由于您在第一个参数中提供了true而未指定deepWithDataAndEvents,因此默认为true,而不是false 。要获得您正在寻找的行为,您应该写下:

var para = $("#d1:first").clone(true, false);