2013-05-28 31 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'})

相關問題