.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
答案 0 :(得分:1)
看起来您误解了文档中的部分内容:
deepWithDataAndEvents 一个布尔值,指示是否应复制克隆元素的所有子项的事件处理程序和数据。 按 默认值与第一个参数的值匹配(默认值 为假。)
由于您在第一个参数中提供了true
而未指定deepWithDataAndEvents
,因此默认为true
,而不是false
。要获得您正在寻找的行为,您应该写下:
var para = $("#d1:first").clone(true, false);