我使用的是jQuery SVG.我不能向对象添加或删除类.有人知道我的错误吗?

SVG:

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

不会添加类的jQuery:

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

我知道SVG和jQuery可以很好地协同工作,因为我将对象作为目标,并在单击它时发出alert :

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

推荐答案

编辑2016:阅读下面两个答案.

  • jQuery3解决了根本问题
  • Vanilla JS:element.classList.add('newclass')适用于现代浏览器

JQuery(小于3)无法将类添加到SVG.

.attr()支持SVG,所以如果您想依赖jQuery:

// Instead of .addClass("newclass")
$("#item").attr("class", "oldclass newclass");
// Instead of .removeClass("newclass")
$("#item").attr("class", "oldclass");

如果您不想依赖jQuery:

var element = document.getElementById("item");
// Instead of .addClass("newclass")
element.setAttribute("class", "oldclass newclass");
// Instead of .removeClass("newclass")
element.setAttribute("class", "oldclass");

Javascript相关问答推荐

在JS中转换mysql UTC时间字段?

如何使用React渲染器放置根dis?

在JavaScript中检索一些文本

有什么(最佳)方法可以从模块中获取脚本模块的多姆元素吗?

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

浮动Div的淡出模糊效果

如何在不创建新键的情况下动态更改 map 中的项目?

在grafana情节,避免冲突的情节和传说

setcallback是什么时候放到macrotask队列上的?

获取Uint8ClampedArray中像素数组的宽度/高度

使用GraphQL查询Uniswap的ETH价格

优化Google Sheet脚本以将下拉菜单和公式添加到多行

可更改语言的搜索栏

将异步回调转换为异步生成器模式

如何在我的Next.js项目中.blob()我的图像文件?

删除元素属性或样式属性的首选方法

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

在GraphQL解析器中修改上下文值

本地损坏的Java脚本

react 路由DOM有条件地呈现元素