2012-04-06 41 views
-1

我有一些拉斐爾矩形元素通過PHP硬編碼到頁面中,這會根據頁面調用時需要多少來動態生成它們。Raphael.js - 如何以編程方式生成元素名稱?

我想要做的是寫一個JavaScript函數,它將採用一個id號並改變相關的Raphael函數的背景色。

我知道下面的例子不起作用,但這是我想要實現的。

var rectangle_1 = paper.rect(100, 10, 200, 75); 
var rectangle_2 = paper.rect(400, 10, 200, 75); 
var rectangle_3 = paper.rect(700, 10, 200, 75); 

change_color('1'); 

function change_color(id) { 
    variable_name = 'rectangle_' + id; 
    variable_name.attr({fill: 'blue', stroke: 'black', 'stroke-width': 3}); 
} 

顯然,這並不工作,並就如何在運行中生成的元素名稱的任何幫助和建議將不勝感激,

問候,

科技教育

回答

0

只需使用數組或對象來存儲rects而不是命名變量。

var rectangles = []; 
rectangles[0] = paper.rect(100, 10, 200, 75); 
rectangles[1] = paper.rect(400, 10, 200, 75); 
rectangles[2] = paper.rect(700, 10, 200, 75); 

change_color(1); 

function change_color(id) { 
    rectangles[id].attr({fill: 'blue', stroke: 'black', 'stroke-width': 3}); 
} 

如果需要字符串ID,你可以做到這一點作爲一個對象:

var rectangles = {}; 
rectangles['one'] = ... 
+0

這是偉大的,謝謝。 – user1318222 2012-04-11 10:17:42