0

使用 Raphael,我想创建一个具有 Id 属性的矩形,如下例所示。

<rect id="aRect" x="10" y="10" width="50" height="50" r="2" rx="2" ry="2"/>

要创建矩形,我可以使用这样的代码

var elem = _paper.rect(10, 10, 50, 50, 2);

并使用这样的代码设置 ID

elem[0].setAttributeNS(null, 'id', 'aRect');

或使用这样的代码

elem.node.id = 'aRect';

现在 raphael 在较旧的 IE 上回退到 vml 我如何添加一个也适用于 vml 情况的 id 属性,或者这段代码也适用于此?

4

1 回答 1

0

在阅读了此处的 MS 页面后,我实施了此解决方案来设置 ID。

function setId(el, id){
    if(el === null || typeof el !== 'object') return;
    if(Raphael.type === 'SVG') {
        el[0].setAttributeNS(null, 'id', id);
    }
    else if(Raphael.type === 'VML') {
        el[0].id = id;
    }
}
于 2012-10-11T10:50:51.123 回答