このJSFiddle (以下のコード) では、単にパスを複製してその設定を変更しようとしています。ただし、コードを実行すると、rect2 にメソッドがsetAttribute()
定義されていないというエラーが表示されます。
ただし、代わりに、このメソッドを rect1 で実行すると、この JSFiddlechange()
のようにエラーは発生しません。したがって、完全なクローンが生成されないという点で、クローン方法に問題があると思われます。
私は何を間違っていますか?拡張機能に問題がある場合、適切な回避策は何ですか? ありがとう
$('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) を実行すると、「未定義」と表示されます。