查询 Raphael 对象的类

发布于 2024-11-15 16:55:11 字数 547 浏览 1 评论 0原文

我使用 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'));

是否有特殊原因导致此无效? 是否有(其他)方法来查询类属性?

谢谢, 阿德里安

I have this array of rects using jQuery and 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);
}

I can successfully query various attributes, like:

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

or

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

but not:

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

Is there a special reason for which this is not valid?
Is there an (other) way to query the class attribute?

Thanks,
Adrian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浊酒尽余欢 2024-11-22 16:55:11

SVG 中的类与其他一切 - 在处理 SVG 和 IE 的 VML 的 Raphael 中,事情变得更加棘手。

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

如果您想使用类来存储数据(例如,使用“活动”、“非活动”类作为开关),最好使用 Raphael 的 .data 函数 其中 显然用于存储任意值。 此相关问题包含包含更多信息的答案。

Classes in SVG aren't quite the same as classes in everything else - and in Raphael, which deals with SVG and IE's VML, things get even more hairy.

First of all, they're on the page's DOM element (Raphael's output) not in the Raphael JS object itself. You'd use Raphael's .node to get the actual DOM path (e.g. with jQuery, $(squares[0].node).someJqueryFunction();) but this sort of thing is best avoided where possible for the above reasons. This related question has answers with more info.

If you want to use classes to store data (e.g. like using 'active', 'inactive' classes as switches), you're best off using Raphael's .data function which apparently is for storing arbitrary values. This related question has answers with more info.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文