gpt4 book ai didi

javascript - nvd3 multiBarChart - 图例单击事件

转载 作者:行者123 更新时间:2023-12-01 02:36:27 25 4
gpt4 key购买 nike

我有一个带有图例的堆叠多条形图。

当您通过图例禁用所有项目时,它们都会再次启用。我想防止这种情况发生,并且仅在用户单击某个项目时才启用它们。

我一直在查看图表源(下面的链接),但无法找到所有项目再次启用的位置。我在想也许我可以重写 legendClick 调度函数,但似乎这没有在我自己的 JS 中注册(下面的 fiddle )

controls.dispatch.on('legendClick', function(d,i) {
//Some logic to keep all items disabled here
}

https://jsfiddle.net/s2vemzht/26/

https://github.com/novus/nvd3/blob/master/src/models/multiBarChart.js

我如何控制图例点击时启用/禁用的内容?

更新:2017 年 3 月 1 日

我在代码 nv.d3.js 文件中发现了一个区域,该区域将所有系列设置回启用状态。如何为图表的特定实例覆盖此行为而不是更改源中的默认行为?

//the default behavior of NVD3 legends is, if every single series
// is disabled, turn all series' back on.
data.forEach(function(series) { series.disabled = false});

https://github.com/novus/nvd3/blob/f81cd38015ecb4c3a11a161e37a62761276b87ac/build/nv.d3.js#L6433

最佳答案

legendClick 事件的正确处理程序必须这样编写:

chart.legend.dispatch.on('legendClick', function(d,i) {
var dt = d3.select('#chart svg').datum(); // <-- all data
console.log("legendClick", sel_data, idx_data, dt);

// here you can do what you need
});

fiddle 更新:https://jsfiddle.net/beaver71/2dxthaL2/

关于javascript - nvd3 multiBarChart - 图例单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com