Я только начал работать с Chart.js, и я очень сильно расстроен. У меня работает сводная гистограмма, но я не могу заставить "события" щелкнуть.
Я нашел комментарий к GitHub nnnick
из Chart.js, в котором говорится о использовании функции getBarsAtEvent
, хотя эта функция не найдена в Документация Chart.js (продолжите поиск, выполните поиск). В документации упоминается функция getElementsAtEvent
справочника chart
, но только для линейных графиков.
Я установил прослушиватель событий (правильный путь) на мой элемент canvas:
canv.addEventListener('click', handleClick, false);
... еще в моей функции handleClick
chart.getBarsAtEvent
есть undefined!
Теперь, в документе Chart.js, существует инструкция о другом способе регистрации события click для гистограммы. Это сильно отличается от комментария nnnick
к GitHub от 2 лет назад.
В Глобальном графике по умолчанию вы можете установить функцию onClick
для своей диаграммы. Я добавил функцию onClick
в свою конфигурацию диаграммы, и ничего не сделал...
Итак, как, черт возьми, я получаю обратный вызов on-click для работы на моей гистограмме?!
Любая помощь будет принята с благодарностью. Спасибо!
P.S.: Я не использую мастер-сборку из GitHub. Я попытался, но он продолжал кричать, что require is undefined
, и я не был готов включать CommonJS, чтобы я мог использовать эту библиотеку диаграмм. Я бы предпочел написать свои собственные диаграммы Данг. Вместо этого я загрузил и использую версию Standard Build, которую я скачал прямо из ссылки в верхней части .
ПРИМЕР: Ниже приведен пример конфигурации, которую я использую:
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
}
};