如何在创建时将ID添加到Raphael JS元素

问题描述

我正在研究以下演示。为什么无法将ID sample添加到对象?我正在尝试通过CSS控制元素样式,但无法正常工作

var paper = Raphael("container",500,300); 
var dot = paper.circle(50,50,30).attr({ 
stroke: "#000","stroke-width": 5 
}).data("id","sample"); 
#sample{
  fill:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<div id="container"></div>

解决方法

问题在于data()并不引用元素上的svg属性,而是引用Raphael元素上可以访问的自定义数据。

如果要设置id属性,则需要尝试以下操作之一...

在正在使用的attr({})定义中设置“ id”(但是,iirc某些版本的Raphael对此不起作用),如果不需要的话,

dot.attr({ 'id','sample' }); // or try the following 

dot.node.setAttribute('id','sample'); // or 

dot.node.id = 'sample';