我有一个这样的脚本,它在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到拉斐尔对象
再见!