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

时间:2012-01-30 13:47:43

标签: internet-explorer-8 raphael custom-attributes vml

我有一个这样的脚本,它在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没有可以像以前一样使用的DOM结构SVG。

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

谢谢大家!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

adding ID's to raphael objects

再见!