【问题标题】:Chart.js chart onclick disables legend onclickChart.js 图表 onclick 禁用图例 onclick
【发布时间】:2017-12-08 20:40:38
【问题描述】:

我刚刚在条形图中添加了一个图表 onclick 功能,它允许我根据单击的条形采取操作 - 效果很好 - 但是(你知道有一个但是)它禁用了正常的图例 onclick 功能。 我怎样才能同时拥有两种 onclick 功能?

我猜这可能类似于从图表 onclick 函数调用图例 onclick 回调函数,但细节超出了我目前的知识范围。

我知道了,但不确定调用默认处理程序的参数应该是什么。

var defaultLegendClickHandler = Chart.defaults.global.legend.onClick;

function YrChartClick(event, YCarray)
  {
    if (typeof YCarray[0] === "undefined")  //click not on a bar, might be legend
    defaultLegendClickHandler(event, 1);  // parameters?? correct function?
else
{
//clicked on a bar - this works
    $('#month').val(YCarray[0]._index+1);  
    MonChange();
}
}

使用最新版本的chart.js 2.7.1

【问题讨论】:

    标签: javascript chart.js chart.js2


    【解决方案1】:

    试试这样:

    var legendClick = Chart.defaults.global.legend.onClick;
    Chart.defaults.global.legend.onClick = function(e, legendItem) {
        console.log(legendItem);
        legendClick.call(this, e, legendItem);
    };
    

    legendItem 包含被点击的栏的索引。

    legendClick.call(this, e, legendItem) 执行默认的点击处理程序。

    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2020-05-09
    • 2021-07-17
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多