2013-05-28 35 views
1

让我们考虑我有一个circlessRaphael Set一个rectangle如何更改Raphael SET中的单个对象的属性?

<script type="text/javascript"> 

    var paper = Raphael("canvas", 500, 500), 
     r  = paper.rect(100, 100, 140, 80), 
     c  = paper.circle(100, 100, 80); 

    c.attr({fill: 'red', stroke: 'black'}); 
    r.attr({fill: 'black', stroke: 'red'}); 

    var ss = paper.set(r, c); 

</script> 

现在在程序中的某个时候,我需要改变说Circle的fill: 'white'

我知道有可能更改Set的属性,如下所示:ss.attr({fill: 'white'}),但这适用于其所有元素。我仍然想保持矩形的颜色不变。我试过ss.c.attr(),但没有结果。

任何想法我怎么能做到这一点。谢谢

+0

为什么不只是'c.attr({fill:'white'})'?有没有理由不能直接访问'c'? – wwww

+0

因为我需要获取已经创建的ss集并且使用它从某些事件处理程序进行一些更改。 c对我来说是不可见的,我只有这一套。 – Brian

+0

我发现我可以使用set.forEach(),但不知道如何实现使用它。 – Brian

回答

1

前段时间我有同样的问题。然后我发现你可以像访问数组一样访问SET单个对象。
对于exp。 ss[0]返回您的r矩形对象;即ss [0] .attr({'// here'})

相关问题