0

我有一个像这样的脚本,它在 RaphaelJS 中向纸对象添加一个基本矩形,然后在矩形上设置一些自定义属性:

var furniture = paper
  .rect(0, 0, 100, 200)
  .attr({
    fill: '#ccc'
  })
;


furniture.node.id = 'some-id';
$(furniture.node).attr('class','draggableFurniture');
$(furniture.node).attr('productId','1234');
$(furniture.node).attr('title','Some title');
$(furniture.node).attr('price','123.99');

这在 IE9 和 Firefox/Chrome 等中效果很好,但在 IE8 或 7 中不起作用,大概是因为这些浏览器使用 VML 而不是 SVG,并且大概 VML 没有能够像 SVG 一样使用的 DOM 结构。

我想知道如何在所有浏览器(至少包括 IE8 和 7)中一致地将我的自定义属性放入这些对象中?

谢谢各位!

4

2 回答 2

0

排序!Raphael API 中有一个名为“data”的方法 (http://raphaeljs.com/reference.html#Element.data),它允许为纸上的每个项目设置自定义键/值对。虽然它不接受项目数组,但可以多次调用此方法,因此可以通过这种方式添加每个属性。一个例子可以在这里看到:http ://www.irunmywebsite.com/raphael/additionalhelp.php?v=2&q=element.data#pagetop

于 2012-01-30T17:07:16.690 回答
0

我认为最好的方法是使用 Raphael's getById()。您可以分配一个内部 ID。在这里,我已经回答了一个问题,您有一个如何做的例子。

将 ID 添加到 raphael 对象

再见!

于 2012-01-30T20:29:43.573 回答