【发布时间】:2015-08-19 06:32:29
【问题描述】:
我正在为看似简单的事情而苦苦挣扎。
使用 Scaja.JS,我使用 ScalaTags 库生成了一些 SVG。
我现在希望使用事件来操作 SVG 元素:
circ.onclick = { e: dom.MouseEvent => ... }
具体来说,我想选择某个类的所有元素,然后在它们上切换一些类属性。
我尝试了 Scala.js JQuery 绑定。虽然我可以用它检索选择,但我无法操作选定的元素(设置类等)。这似乎是 SVG 是一种无法使用 JQuery 操作的不同类型 DOM 的根本问题。
接下来,我尝试了低级 DOM API。这让我选择了:
document.body.getElementsByClassName("myClass").foreach { node => ... }
我现在正在努力处理node 的属性。我可以访问它们但我无法设置它们,因为node.attributes.setNamedItem(...) 需要一个raw.Attr 参数,我无法创建它,没有构造函数来设置Attr 的name。
另外,使用低级 API 非常不方便。我更喜欢选择一些更容易操作的类,例如Element.
有什么想法吗?
【问题讨论】:
-
名称的概念是 html 的东西,而不是 SVG 的东西。然而,节点是元素。
标签: jquery scala dom svg scala.js