如何在chart.js圆环图上更改鼠标光标?

LeM*_*sel 6 javascript jquery charts chart.js

当使用Chart.js库时,我想在将鼠标悬停在甜甜圈上时更改光标.

我这样做:

$("#dc_LoadTime").mouseleave(function(){
    $("#dc_LoadTime").css("cursor", "default");
}); 
$("#dc_LoadTime").mouseenter(function(){
    $("#dc_LoadTime").css("cursor", "pointer");
});
Run Code Online (Sandbox Code Playgroud)

在html页面中有这个

<canvas id="dc_LoadTime"></canvas>
Run Code Online (Sandbox Code Playgroud)

但是当鼠标进入或离开帆布而不是在圆环图上时,这个更改光标.我找不到办法做到这一点.有人知道这是否可行?

bir*_*ein 18

在chartjs 2.0 <2.5中,我使用悬停在图表的选项部分,如下所示:

options: {
  hover: {
    onHover: function(e) {
      $("#id-of-your-canvas").css("cursor", e[0] ? "pointer" : "default");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

......这是一个完整的例子:https://jsfiddle.net/su5fgb5h/5/

在版本2.5 onhover回调已更改,我们需要第二个参数来更改光标:

options: {
  hover: {
    onHover: function(e, el) {
      $("#id-of-your-canvas").css("cursor", el[0] ? "pointer" : "default");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这种变化对我有用:`onHover:function(e,elements){$(e.currentTarget).css("cursor",elements [0]?"pointer":"default"); }` (3认同)
  • 这是vanilla JS的一个变种,它可以帮助任何人:`onHover:function(e,el){const section = el [0]; const currentStyle = e.currentTarget.style; currentStyle.cursor = section?'指针':'正常'; }` (3认同)

pot*_*ngs 3

您可以利用 showTooltip 方法,如下所示

...
var myDoughnutChart = new Chart(ctx).Doughnut(data);

var originalShowTooltip = myDoughnutChart.showTooltip;
myDoughnutChart.showTooltip = function (activeElements) {
    $("#dc_LoadTime").css("cursor", activeElements.length ? "pointer" : "default");
    originalShowTooltip.apply(this, arguments);
}
Run Code Online (Sandbox Code Playgroud)

  • 我们如何在饼图和条形图上对 ChartJS 版本 2 执行此操作? (2认同)