jQuery与textpath svg元素有问题

时间:2015-02-02 16:56:32

标签: javascript jquery html svg toggleclass

我在我的项目中使用 SVG ,并想在文本路径上使用 jQuery toggleClass 单击时的元素。

所以我在考虑:

$("text#names > textpath").click(function() {
    $(this).toggleClass("newClass");
});
HTML源代码

<text id="names" class="clickthrough">
    <textpath class="zoom1" href="#text1" font-size="12.1"></textpath>
    <textpath ... </textpath>
</text>

但没有任何反应。如果我$("text#names"),我会上课点击率。所以它正在工作,只是文本路径可能不为jQuery所知。所以我发现http://keith-wood.name/svgref.html但在使用之前,我想确定我的情况是否真的需要它。

1 个答案:

答案 0 :(得分:1)

jQuery的.class不适用于SVG元素,您必须使用attr代替:

$("text#names > textpath").click(function() {
  $(this).attr("class", function(_, val){
    return (val.indexOf("newClass")+1) ? val.replace(" newClass","") : val+" newClass";
  });
});

查看the jsFiddle demo