javascript - 当我将鼠标悬停在 ChartJS 条形图中的条形上时,如何将光标更改为指针?

标签 javascript jquery css chart.js

这是我的图表创建

createChart = function (name, contributions, idArray) {
    globalIdArray = idArray;
    var ctx = document.getElementById("myChart");
    var myChart = new Chart(ctx, {
        type: "bar",
        data: {
            labels: name,
            datasets: [{
                label: "Contributions",
                data: contributions,
                backgroundColor: [
                    'rgba(0, 255, 0, 0.2)',
                    'rgba(0, 255, 0, 0.2)',
                    'rgba(0, 255, 0, 0.2)',
                    'rgba(0, 255, 0, 0.2)',
                    'rgba(0, 255, 0, 0.2)'
                ]
            }]
        },
        options: {
            scales: {
                yAxes: [{
                    ticks: {
                        beginAtZero: true
                    }
                }]
            },
            onClick: handleClick,
            onHover: handleHover
        }
    });

这是 HTML,一切都是 JavaScript,并且驻留在 canvas 元素内。

<canvas chart-hover="onHover" id="myChart" width="200" height="200"></canvas>

我这样做是为了当我单击一个栏时,它们充当“钻取”并获取包含更多详细信息的页面。为此,我使用了以下代码:

function handleClick(e) {
            debugger;
            var activeElement = myChart.getElementAtEvent(e);
            var designerId = _idArray[activeElement[0]._index];
            window.location.href = "/Display/search/index?designerId=" + designerId;
        }

我想让我的光标变成一个指针,让用户知道他们可以单击该栏(因为它通常会随着链接而改变)。我在 Stack Overflow 上看到了一些这样的例子,但它们是过去一两年的事,这些帖子包括要求更新版本的评论,但没有解决方案。

这是我看到的另一篇文章,我相信它与我想要完成的事情是一样的,但它对我不起作用。

How to change cursor style to pointer on hovering over points of the chart?

有谁知道如何使用最新的 ChartJS 实时版本来实现这一点?

最佳答案

我只需要当光标位于折线图上的条形或点上时才发生变化,因此想出了这个简单的解决方案。将您的函数放在图表声明之外。

var chart = new Chart(ctx, {
    data: {...},
    options: {
     onHover: graphHover
    }
});
function graphHover(e, array) {
    if(array.length > 0) {
        e.target.style.cursor = 'pointer';
    }else {
        e.target.style.cursor = '';
    }
}

关于javascript - 当我将鼠标悬停在 ChartJS 条形图中的条形上时,如何将光标更改为指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028098/

相关文章:

JavaScript:添加 onClick 处理程序而不覆盖现有处理程序

javascript - 如何从 after() 中删除元素

javascript - 如何在模态窗口中自动调整 Kendo UI 网格的大小

html - 一个元素不会显示在媒体查询 1280px

html - 如何设置响应式 li 大小比为 2 :1 containing different sized images in grid

javascript - jQuery 防止动画分区的跳跃

javascript - 从 Google 表格填充 HTML 表单

javascript - 有没有办法将数组的变量名打印为字符串? (JavaScript)

javascript - Chrome 中的 HTML5 拖放错误

java - 带有动态信息的工具提示弹出窗口