0

我创建 vml 元素 v:shape,添加样式和属性,然后附加它。

var shape = document.createElement("v:shape");
//some attrs
shape.setAttribute("coordorigin", "0 0");
shape.setAttribute("coordsize", w + " " + h);
shape.setAttribute("stroked", "false");
//...
//some styles
shape.style.position = "absolute";
shape.style.top = 0 + "px";
shape.style.left = 0 + "px";
shape.style.width = w + "px";
shape.style.height = h + "px";
//...
$(element).append(shape);

我想将相同的形状附加到另一个地方

var shape2 = $(shape).clone(true);

但它只克隆样式

alert(shape2.css("position")); // absolute
alert(shape2.attr("coordsize")); // undefined

我该怎么办?请帮助我)
[编辑] 感谢您的回答)这对我来说很奇怪......我注意到当我将它附加到元素时它可以工作如果var element = document.createElement("p");但我得到我的元素$(selector).each(function(index, element) {即使我将它附加到正文它也没有工作(

4

2 回答 2

0

如果我在缺失值中做假,它对我有用:http: //jsfiddle.net/JAAulde/hKCHX/1/(在 Safari、Chrome 和 Firefox 中尝试过)

于 2012-05-03T17:43:38.103 回答
0

从文档中?

.clone( [withDataAndEvents] )

withDataAndEvents - 一个布尔值,指示是否应将事件处理程序与元素一起复制。

.clone( [withDataAndEvents] [, deepWithDataAndEvents] )

withDataAndEvents - 一个布尔值,指示是否应将事件处理程序和数据与元素一起复制。

默认值为假。

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

使用clone(true)也会复制事件处理程序和数据。

这是您的确切代码(稍作更改)的小提琴,效果很好FIDDLE

你确定你已经正确定义了w,helement变量,因为wundefined会导致你得到的错误?

于 2012-05-03T17:58:17.293 回答