Я только начал работать с Chart.js, и я очень сильно расстроен. У меня работает сводная гистограмма, но я не могу заставить клики «события» работать.Chart.js: Bar Chart Click События
Я нашел comment on GitHub by nnnick
от Chart.js о том, чтобы использовать функцию getBarsAtEvent
, даже если эта функция не может быть найден в Chart.js documentation на все (идти вперед, сделать поиск для него). В документации упоминается функция getElementsAtEvent
ссылки chart
, но только для линейных диаграмм.
Я установил слушатель событий (правильный путь) на моем холсте элемента:
canv.addEventListener('click', handleClick, false);
... еще в моей handleClick
функции, chart.getBarsAtEvent
не определен!
Теперь, в документе Chart.js, существует инструкция о том, как зарегистрировать событие click для гистограммы. Это сильно отличается от комментария nnnick
от GitHub от 2 лет назад.
В Global Chart Defaults вы можете установить функцию onClick
для вашего графика. Я добавил функцию onClick
в свою конфигурацию диаграммы, и он ничего не сделал ...
Итак, как, черт возьми, я получаю обратный вызов по щелчку для работы на моей гистограмме ?!
Любая помощь была бы принята с благодарностью. Благодаря!
P.S .: Я не использую мастер-сборку из GitHub. Я попытался, но он продолжал кричать, что require is undefined
, и я не был готов включать CommonJS, чтобы я мог использовать эту библиотеку диаграмм. Я бы предпочел написать свои собственные диаграммы Данг. Вместо этого я загрузил и использую версию Standard Build, которую я загрузил прямо из ссылки в верхней части documentation page.
Пример: Вот пример конфигурации я использую:
var chart_config = {
type: 'bar',
data: {
labels: ['One', 'Two', 'Three'],
datasets: [
{
label: 'Dataset 1',
backgroundColor: '#848484',
data: [4, 2, 6]
},
{
label: 'Dataset 2',
backgroundColor: '#848484',
data: [1, 6, 3]
},
{
label: 'Dataset 3',
backgroundColor: '#848484',
data: [7, 5, 2]
}
]
},
options: {
title: {
display: false,
text: 'Stacked Bars'
},
tooltips: {
mode: 'label'
},
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes: [
{
stacked: true
}
],
yAxes: [
{
stacked: true
}
]
},
onClick: handleClick
}
};
я обнаружил, что я был в состоянии иметь мой 'onClick' функция называется установкой' chart.config.options.onClick = handleClick' но это не поможет мне найти то, что часть моей диаграммы было нажмите. Это в основном то же самое, что и установка моего прослушивателя событий на узле 'canvas'. – WebWanderer