在Chart.js甜甜圈图上检测onHover是否完成

时间:2019-11-19 17:29:56

标签: javascript chart.js

我有一个Chart.js甜甜圈图(v2.7.1),我希望在用户将鼠标悬停在相关图表元素上时设置外部元素的类

我可以在图表的onHover中使用options.hover事件

 hover: {
                    onHover: function (evt, item) {
                        if (item.length) {
                            var index = item[0]._index;
                            var legendElement = $(#get element based on index#);
                            legendElement.addClass('active');
                        }
                    }
                }

这完美地设置了元素(legendElement)上的类,但是当用户不再将鼠标悬停在元素上时,我需要能够从该元素中删除我设置的类

我使用正确的方法吗?有没有办法检测onHover是否已完成或该片段不再处于焦点?

1 个答案:

答案 0 :(得分:1)

除了“ onHover”属性之外,您还在定义“事件”属性吗?如果将“ mouseout”添加到列表中,则在两种情况下都将调用“ onHover”功能。请查看此https://www.chartjs.org/docs/latest/general/interactions/events.html

的文档

可能有效的示例代码:

options: {
   events: ["mousemove", "mouseout"],
   onHover: function (evt, item) {

       if (item.length) {
           var index = item[0]._index;
           var legendElement = $(#get element based on index#);
           if(evt.type == "mousemove"){
             legendElement.addClass('active');
           }else{
             legendElement.removeClass('active');
           }

       }
   }
}