gpt4 book ai didi

javascript - nvd3捕获堆积面积图上的点击事件

转载 作者:行者123 更新时间:2023-11-28 00:08:06 31 4
gpt4 key购买 nike

我正在 try catch nvd3 堆积面积图上的点击事件。我能够捕获工具提示显示工具提示隐藏事件。我想捕获点击事件并获取点击点信息。请帮忙。 PLUNKER_LINK

我的图表选项是:

chart: {
type: 'stackedAreaChart',
height: 450,
x: function (d) { return d[0]; },
y: function (d) { return d[1]; },
showValues: true,
valueFormat: function (d) { return d3.format(',.4f')(d); },
dispatch: {
tooltipShow: function (e) { console.log('! tooltip SHOW !') },
tooltipHide: function (e) { console.log('! tooltip HIDE !') },
beforeUpdate: function (e) { console.log('! before UPDATE !') },
elementClick: function (e) { alert('clicked');}

}
}
};

最佳答案

您需要将 dispatch block 包装在 stacked block 中:

stacked: {
dispatch: {
tooltipShow: function (e) { console.log('! tooltip SHOW !') },
tooltipHide: function (e) { console.log('! tooltip HIDE !') },
beforeUpdate: function (e) { console.log('! before UPDATE !') },
elementClick: function (e) { alert('clicked');}
}
}

但是这样做您仍然无法接收 elementClick,因为堆叠图表层不会发送它。相反,您可以接收 areaClick 事件,但只有当您单击堆叠区域内部时才会触发该事件。

因此,我建议您从“交互”层拦截调度事件。只需这样做:

chart: {
type: 'stackedAreaChart',
...
interactiveLayer: {
dispatch: {
elementMousemove: function(e) {
console.log(e.mouseX + " " + e.mouseY + " " + e.pointXValue);
},
elementClick: function(e) {
console.log(e.mouseX + " " + e.mouseY + " " + e.pointXValue);
}
}
}
}

关于javascript - nvd3捕获堆积面积图上的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31164732/

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