Raphael.js - 如何以编程方式生成元素名称?

时间:2012-04-06 20:53:45

标签: raphael element

我有一些Raphael矩形元素通过php硬编码到页面中,根据调用页面时需要的数量,它会动态生成它们。

我要做的是编写一个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});
}

显然这不起作用,我们将非常感谢有关如何动态生成元素名称的任何帮助和建议,

的问候,

步骤

1 个答案:

答案 0 :(得分: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'] = ...