在这个 JSFiddle中,(下面的代码),我只是试图克隆一个路径并更改它的设置。但是,当我运行代码时,它给出了 rect2 没有setAttribute()
定义方法的错误。
但是,相反,当我change()
在 rect1 上运行该方法时,它不会产生错误,就像在这个 JSFiddle中一样。所以我怀疑这是克隆方法的问题,因为它不会产生完整的克隆。
我究竟做错了什么?如果扩展有问题,有什么好的解决方法?谢谢
$('body').svg({onLoad: function(svg){
var path = svg.createPath();
var rect1 = svg.path(
path.move( 50, 50 )
.line( 200, 0, true )
.line( 0, 200, true )
.line( -200, 0, true )
.close(),
{
fill: 'none',
stroke: '#00f',
strokeWidth: 30
}
);
var rect2 = svg.clone(null, rect1);
svg.change(rect2, {
fill: 'none',
stroke: '#f00',
strokeWidth: 10
});
}});
到目前为止我的努力:
- 如果我在克隆之前执行 alert(rect1),它会显示“[object SVGPathElement]”。
- 如果我在克隆后执行 alert(rect2) ,它还会显示“[object SVGPathElement].
- 如果我做 alert(rect1.setAttribute) 它说“function setAttribute() {[native code]}”
- 如果我做 alert(rect2.setAttribute) 它说“未定义”。