Даже если вы определите свой собственный обработчик onClick
, события щелчка по-прежнему распространяются для обработки в другом месте. Как видно из приведенного ниже фрагмента кода, при нажатии на легенду «onClick» записывается в консоль, а отдельные фрагменты диаграммы p ie скрываются или отображаются.
function handleClick(evt, legendItem, index, con) {
console.log('onClick');
}
var pieChart = new Chart("myChart", {
type: 'pie',
data: {
labels: ["Red", "Blue", "Yellow"],
datasets: [{
data: [8, 5, 6],
backgroundColor: ["#FF6384", "#36A2EB", "#FFCE56"],
}]
},
options: {
events: ['click', 'mousemove', 'touchstart', 'touchmove'],
onClick: handleClick
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
<canvas id="myChart"></canvas>
Проблема должна заключаться в том, что при каждом клике вы заново создаете график с нуля, как может указывать следующая строка:
reloadChart(ar.reverse().join(''), activeElement[0]._chart.data.labels[activeElement[0]._index].substring(0, 2));