gpt4 book ai didi

javascript - NVD3 为饼图的单个切片创建点击事件

转载 作者:搜寻专家 更新时间:2023-11-01 05:21:29 25 4
gpt4 key购买 nike

我正在使用 NVD3 创建饼图。饼图生成代码:

nv.addGraph(function() {
var chart = nv.models.pieChart().x(function(d) { return d.label }).y(function(d) { return d.value }).showLabels(true);
d3.select("#chart svg").datum(exampleData()).transition().duration(350).call(chart);
return chart;

function exampleData() {
return vm.chartData.userData;
}
});

现在饼图中有两个切片,如图所示。

enter image description here

我使用了以下方法1)在方法上使用js

var svg = d3.selectAll("#chart svg");
svg.select(".nv-pie").selectAll(".nv-slice")
.on('mouseover',function(d){
console.log(d);
});

但是没有点击事件发生。

不对的地方请指正

最佳答案

使用这个:

chart.pie.dispatch.on("elementClick", function(e) {
console.log(e);
});

演示

var chartElement = d3.select("#chart svg");
var chart;

nv.addGraph(function() {
chart = nv.models.pieChart()
.x(function(d) {
return d.label
})
.y(function(d) {
return d.value
})
.showLabels(true);

var chartData = [{
label: "Foo",
value: 67
}, {
label: "Bar",
value: 33
}];

chartElement
.datum(chartData)
.call(chart);

chart.pie.dispatch.on("elementClick", function(e) {
alert("You've clicked " + e.data.label);
});

return chart;
});
#chart {
height: 500px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.2/nv.d3.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.2/nv.d3.min.css" rel="stylesheet" />
<div id="chart">
<svg></svg>
</div>

关于javascript - NVD3 为饼图的单个切片创建点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571654/

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