我有一些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});
}
显然这不起作用,我们将非常感谢有关如何动态生成元素名称的任何帮助和建议,
的问候,
步骤
答案 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'] = ...