这只是一个问题。有时当我在创建对象后使用d3.js时,我需要做一些事件或者通过jQuery获取一些特定的属性。 jQuery代码有时候不起作用,但有时它可以工作。 以前有没有人这么做过?
答案 0 :(得分:1)
我遇到的一件事是jQuery的addClass
,removeClass
,toggleClass
不适用于SVG(d3.js创建SVG元素),这是因为HTML和SVG DOM扩展对“className”有不同的定义。有关此article。
另一件事是事件处理程序,例如,当我在选择元素上绑定jQuery事件处理程序时,我必须使用this.__data__
获取SVG元素上的数据。虽然使用d3.js事件处理程序与dispatch
事件,rebind
等结合起来可能更容易。此外,d3中的manually triggering事件可能与jQuery完全不同,例如:
var event = document.createEvent('Event');
event.initEvent('change', true, true);
d3.select("#element").node().dispatchEvent(event);