我在我的项目中使用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可能不知道textpath。因此,我找到了http://keith-wood.name/svgref.html,但是在使用它之前,我想确定我的情况是否真的需要它。 最佳答案
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。