猿问

jQuerySVG,为什么我不能添加类呢?

jQuerySVG,为什么我不能添加类呢?

我正在使用jQuerySVG。我不能向对象添加或移除类。有人知道我的错误吗?

SVG:

<rect class="jimmy" id="p5" x="200" y="200" width="100" height="100" />

不添加类的jQuery:

$(".jimmy").click(function() {
    $(this).addClass("clicked");});

我知道SVG和jQuery合作得很好,因为我能,会,可以目标对象并在单击对象时发出警报:

$(".jimmy").click(function() {
    alert('Handler for .click() called.');});


喵喔喔
浏览 876回答 3
3回答

婷婷同学_

阅读接下来的两个答案。jQuery 3修复了根本问题香草JS:element.classList.add('newclass')在现代浏览器中工作。jQuery(小于3)不能向SVG添加类。.attr()使用SVG,所以如果您想依赖jQuery://&nbsp;Instead&nbsp;of&nbsp;.addClass("newclass")$("#item").attr("class",&nbsp;"oldclass&nbsp;newclass"); //&nbsp;Instead&nbsp;of&nbsp;.removeClass("newclass")$("#item").attr("class",&nbsp;"oldclass");如果您不想依赖jQuery,那么:var&nbsp;element&nbsp;=&nbsp;document.getElementById("item");//&nbsp;Instead&nbsp;of&nbsp;.addClass("newclass")element.setAttribute("class",&nbsp;"oldclass&nbsp;newclass"); //&nbsp;Instead&nbsp;of&nbsp;.removeClass("newclass")element.setAttribute("class",&nbsp;"oldclass");

忽然笑

的确有元素类列表在DOMAPI中,它同时适用于HTML和SVG元素。不需要jQuerySVG插件,甚至不需要jQuery。$(".jimmy").click(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;this.classList.add("clicked");});
随时随地看视频慕课网APP
我要回答