apexcharts 添加点击事件到标签
apexcharts add click event to label
我有一个折线图。
看起来像这样:
我成功地向数据点添加了一个 onclick 事件。
但是我想给标签添加一个 onclick 事件(比如 01、02、03、04、05)
有人知道怎么做吗?
我用于数据点的代码是这样的:
var options = {
chart: {
height: 400,
type: 'line',
stacked: false,
events: {
dataPointSelection: (event, chartContext, config) => {
var selecteddate = pad(config.dataPointIndex + 1, 2);
console.log(selecteddate);
}
}
}
这行得通,但如何向标签添加事件?
或者这是不可能的?
我通过向我的页面添加一个事件侦听器来设法做到这一点。
它可能不是标签,但工具提示也很棒。
$(".apexcharts-xaxistooltip").click(function(){
var selecteddate = $(this).text();
// do something
});
之后我也覆盖了工具提示的css。
.tooltip-inner {
background-color: #00acd6 !important;
/*!important is not necessary if you place custom.css at the end of your css calls. For the purpose of this demo, it seems to be required in SO snippet*/
color: #fff;
}
.apexcharts-xaxistooltip{
opacity: 1;
pointer-events: all;
}
.apexcharts-xaxistooltip:hover{
background: #46A7B3;
color: white;
cursor: pointer;
}
这给了我很好的悬停效果和可点击的光标。
通过这种方式,工具提示是可点击的,并且在悬停时不会淡出。
我有一段时间遇到同样的问题,如果有人遇到标签上需要 onClick 的情况,这就是我解决它的方法:
componentDidMount () {
//get the DOM elements of the labels , classes may vary so check in dev tools.
const labels = document.querySelectorAll('.apexcharts-text.apexcharts-yaxis-label')
// you'll get NodeList so iterate & add click event listeners
labels.forEach(item => {
item.addEventListener('click', event => {
// do whatever onClick
console.log(event.target)
})
})
}
今天(2022 年 5 月 6 日),有一个特定的事件,例如
legendClick: function(chartContext, seriesIndex, config) {
// get the id of the chart-element to get the specific chart (I have multiple charts on a page)
console.log('chartConfigId', chartContext.el.id.split("-")[2]);
console.log('seriesIndex', seriesIndex);
}
我有一个折线图。
看起来像这样:
我成功地向数据点添加了一个 onclick 事件。
但是我想给标签添加一个 onclick 事件(比如 01、02、03、04、05)
有人知道怎么做吗?
我用于数据点的代码是这样的:
var options = {
chart: {
height: 400,
type: 'line',
stacked: false,
events: {
dataPointSelection: (event, chartContext, config) => {
var selecteddate = pad(config.dataPointIndex + 1, 2);
console.log(selecteddate);
}
}
}
这行得通,但如何向标签添加事件?
或者这是不可能的?
我通过向我的页面添加一个事件侦听器来设法做到这一点。
它可能不是标签,但工具提示也很棒。
$(".apexcharts-xaxistooltip").click(function(){
var selecteddate = $(this).text();
// do something
});
之后我也覆盖了工具提示的css。
.tooltip-inner {
background-color: #00acd6 !important;
/*!important is not necessary if you place custom.css at the end of your css calls. For the purpose of this demo, it seems to be required in SO snippet*/
color: #fff;
}
.apexcharts-xaxistooltip{
opacity: 1;
pointer-events: all;
}
.apexcharts-xaxistooltip:hover{
background: #46A7B3;
color: white;
cursor: pointer;
}
这给了我很好的悬停效果和可点击的光标。
通过这种方式,工具提示是可点击的,并且在悬停时不会淡出。
我有一段时间遇到同样的问题,如果有人遇到标签上需要 onClick 的情况,这就是我解决它的方法:
componentDidMount () {
//get the DOM elements of the labels , classes may vary so check in dev tools.
const labels = document.querySelectorAll('.apexcharts-text.apexcharts-yaxis-label')
// you'll get NodeList so iterate & add click event listeners
labels.forEach(item => {
item.addEventListener('click', event => {
// do whatever onClick
console.log(event.target)
})
})
}
今天(2022 年 5 月 6 日),有一个特定的事件,例如
legendClick: function(chartContext, seriesIndex, config) {
// get the id of the chart-element to get the specific chart (I have multiple charts on a page)
console.log('chartConfigId', chartContext.el.id.split("-")[2]);
console.log('seriesIndex', seriesIndex);
}