在Raphael对象上查询课程

时间:2011-06-14 21:09:06

标签: class raphael

我使用jQuery和Raphael获得了这个数组:

squares = [];
for (i = 0; i < 2; ++i) {
    var square = paper.rect(0 + 100*i, 0, 70, 70);
    square.node.idx = i;
    square.node.setAttribute('class', 'foo');
    squares.push(square);
}

我可以成功查询各种属性,例如:

alert(squares[0].attr('x'));

alert(squares[0].attr('width'));

alert(squares[0].attr('class'));

这是否有特殊原因无效? 是否有(其他)方式来查询类属性?

谢谢, 阿德里安

1 个答案:

答案 0 :(得分:1)

SVG aren't quite the same中的类作为其他所有类中的类 - 在处理SVG和IE的VML的Raphael中,事情变得更加毛茸茸。

首先,它们位于页面的DOM元素(Raphael的输出)上,而不是Raphael JS对象本身。您可以使用Raphael的.node来获取实际的DOM路径(例如使用jQuery,$(squares[0].node).someJqueryFunction();)但是出于上述原因,最好尽可能避免这种情况。 This related question有更多信息的答案。

如果你想使用类来存储数据(例如使用'active','inactive'类作为开关),你最好使用Raphael的.data functionapparently用于存储任意值。 This related question有更多信息的答案。