после вызова render
,
мы можем получить доступ к типу серии данных следующим образом ...
barChart.options.data[0].type = 'pie';
вместо трех отдельных событий щелчка,
назначить одно событие щелчкав раскрывающийся класс.
затем используйте идентификатор элемента, по которому щелкнули, чтобы установить тип диаграммы ...
$(".dropdown-item").click(function(e) {
barChart.options.data[0].type = e.target.id;
barChart.render();
});
см. следующий рабочий фрагмент ...
$(function() {
var barChart = new CanvasJS.Chart("barChartContainer", {
animationEnabled: true,
theme: "light2",
title: {
text: "Gender wise Employees Length",
fontSize: 20,
fontFamily: "Trebuchet MS",
fontWeight: "bold",
margin: 10
},
axisY: {
title: "Number of Employees"
},
data: [{
type: "funnel",
dataPoints: [
{y: 10, label: "MALE"},
{y: 10, label: "FEMALE"}
]
}]
});
barChart.render();
$(".dropdown-item").click(function(e) {
barChart.options.data[0].type = e.target.id;
barChart.render();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<div class="card shadow p-1 bg-white rounded">
<div class="card-body">
<div class="dropdown mr-20">
<div class="dropdown-menu">
<a class="dropdown-item" id="pie" href="#">Pie</a>
<a class="dropdown-item" id="bar" href="#">Bar</a>
<a class="dropdown-item" id="funnel" href="#">Funnel</a>
</div>
</div>
<div id="barChartContainer" style="height: 240px; width: 100%;"></div>
</div>
</div>