在 highcharts 中禁用图例悬停

ut6juiuv  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(313)

我需要禁用图例项的悬停属性,因为我在移动的平台上使用Highcharts。遗憾的是,创建legendItemClick事件并不能解决这个问题,因为悬停仍然会发生。
我很高兴地看到这个问题出现在2011年的旧的highcharts支持网站上,线程可以在here中找到,我特别高兴地看到最后一个jfiddle示例和其中声明的函数。
不幸的是,唯一对我有用的是将setHoverStyle更改为null的变通方法。但这并不是很好,因为悬停操作仍然触发,并使导航图例和图表没有响应。上述线程中的其余建议导致图表无法呈现。
当然,这可能是因为我很难把这个例子翻译成我的目的--老实说,我不知道在哪里调用这个函数,而且我尝试过的所有方法都失败了。

var chartDefinition = {
  chart: {
    renderTo: 'chart_content',
    type: 'column'
  },
  colors: [
         '#619ED6',
         '#6BA547',
         '#F7D027',
         '#E48F1B',
         '#B77EA3',
         '#E64345',
         '#60CEED',
         '#9CF168',
         '#F7EA4A',
         '#FBC543',
         '#FFC9ED',
         '#E6696E'
         ],
  title: {
    text: ''
  },

  ...

 column: {
      shadow: false,
      borderWidth: 1,
      events: {
        click: function() { return false; },
        legendItemClick: function() { return false; }
      },
      dataLabels: {
        enabled: false,
        color: '#222',
        style: {
          fontFamily: 'sans-serif',
          fontSize: '13px',
          fontWeight: 'bold'
        }
      }
    }
  },
  series: []
};

列出并设置各种highcharts属性。
有人知道如何禁用这个悬停属性吗?或者在哪里调用function是合适的?

jhiyze9q

jhiyze9q1#

有一些解决方案可以实现这一点,但没有内置的选项可以改变这一点(截至2022年6月)。
1.尝试禁用legendGroup的鼠标悬停,而不是legendItem
演示:http://jsfiddle.net/Cp7xh/10/
1.禁用CSS中的指针事件:

.highcharts-legend {
    pointer-events: none;
}

演示:http://jsfiddle.net/BlackLabel/ebrodhk4/
1.阻止Highcharts Core添加事件的插件:
外挂程序:

(function(H) {
    H.wrap(
        H.Legend.prototype,
        'init',
        function(proceed, chart, options) {

            if (options.enableMouseTracking === false) {
                this.setItemEvents = false;
            }

            proceed.apply(this, [chart, options]);
        }
    );
})(Highcharts);

用法:

legend: {
        enableMouseTracking: false,
        itemStyle: {
            cursor: 'auto'
        }
    },

演示:https://jsfiddle.net/BlackLabel/ogqv2sya/

相关问题