【发布时间】:2014-10-21 01:03:49
【问题描述】:
例如,我需要通过仅将鼠标悬停在其中一个元素上来选择一组元素。它在Firefox中执行非常慢。 这是示例http://bl.ocks.org/tumoxep/581d939e30361fbe0b44 我希望我在某个地方犯了一个错误。
【问题讨论】:
标签: javascript firefox svg d3.js
例如,我需要通过仅将鼠标悬停在其中一个元素上来选择一组元素。它在Firefox中执行非常慢。 这是示例http://bl.ocks.org/tumoxep/581d939e30361fbe0b44 我希望我在某个地方犯了一个错误。
【问题讨论】:
标签: javascript firefox svg d3.js
嗯,你的演示在 Firefox 中的性能对我来说还可以......我仍然觉得你使用组和鼠标事件的方式很奇怪。当您查看您的 DOM 时,您会看到所有的圆圈都在您的组内。与鼠标事件无关,而是在寻找圆圈的颜色?
为什么不创建一个由几个圆圈组成的组,然后将鼠标事件应用于该组。
像这样:
var svgg = svg.selectAll("g.myGroup")
.data(myData)
.enter()
.append("g");
svgg.each(function (d, i) {
selection = d3.select(this);
selection.append("circle")
// ...
});
svgg.on("mouseover", function(d) {
// Do what you want here
});
您可以在此处找到类似的示例:http://jsfiddle.net/77XLD/1/
我不确定这是否有助于提高性能...
【讨论】: