在下面的示例中,我尝试动态地将链接标记添加到svg元素。使用jQuery的SVG链接标记
http://lizziemalcolm.com/svgtest.html
$('#button').click(function(){
$('.svgClass').wrap('<a xlink:href="http://www.w3.org/" />');
});
在该示例中,虽然语法是完全一样的,椭圆与动态添加链接自败。
任何想法,为什么会发生这种情况?
我试图这样做的原因是,我希望使用SVG定制http://www.addthis.com/图标,并且元素必须包含在标记中。
与纯JavaScript也试过,但没有运气:
function wrapElem(innerId, wrapType, wrapperId, wrapperUrl){
var innerElem = document.getElementById(innerId),
wrapper = document.createElement(wrapType);
wrapper.appendChild(innerElem.parentNode.replaceChild(wrapper, innerElem));
wrapper.setAttribute('xml:id', wrapperId);
wrapper.setAttribute('xlink:href', wrapperUrl);
return wrapper;
}
链接也更新
感谢您的输入刘德华,但这些变化很遗憾没有运气。 – MALK
奇怪的是,那么为什么示例链接起作用,而您的示例链接不起作用,如果您更改标记,以便两个圆圈最初都有链接(即按照我们的按钮添加链接),那么它是否有效?我猜不是,这是标记的问题,不知怎的,这是绕着圆圈的行为。您在调试时还尝试过了什么? – Andy
我注意到的唯一的另一件事是,使用一个对象元素链接到外部.svg文件,这是不同于你的内联的东西,可能这与差异有关(不建议你使用一个对象元素,我知道这不适合你的需求:) :) – Andy