IE8中RaphaelJS节点上的自定义属性



我有一个这样的脚本,它在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)中一致地将我的自定义属性放入这些对象中?

谢谢大家!

已排序!在Raphael API中有一种称为"数据"的方法(http://raphaeljs.com/reference.html#Element.data)这允许为纸上的每个项目设置自定义键/值对。尽管它不接受项的数组,但可以多次调用此方法,以便以这种方式添加每个属性。示例如下:http://www.irunmywebsite.com/raphael/additionalhelp.php?v=2&q=element.data#pagetop

我认为最好的方法是使用拉斐尔的getById()。你可以签署一个内部ID。在这里我回答了一个问题,你有一个如何做到这一点的例子。

添加ID';s到拉斐尔对象

再见!

最新更新