在 NetworkGraph 上拖放?

问题描述 投票:0回答:1

晚上好!

我正在尝试获取网络图上放置点的坐标。

不幸的是,使用文档中的信息似乎出了问题,但我也可能错过了一个关键点。

我的选项如下:

{ 
    plotOptions: {
        series: {
            dragDrop: {
            draggableX: true,
            draggableY: true,
          },
          point: {
            events: {
              drop: function (e) {
                 console.log('I have been dropped', this, e);
              },
              click: function (e) {
                console.log('I have been clicked', this, e);
              }
            }
          }
        }
    },
}

可以在这里找到复制案例https://jsfiddle.net/41wvq62t/2/

知道出了什么问题吗?

highcharts
1个回答
0
投票

NetworkGraph 不支持

series.dragDrop
选项,因此点拖/放事件不可用。文档中的这种不一致之处已被报告,并将很快得到纠正。

作为解决方法,您可以包装 networkGraph 模块中的 onMouseUp 和 onMouseDown 函数来检测拖/放位置。

示例代码:

(function(H) {
  H.wrap(Highcharts.seriesTypes.networkgraph.prototype, 'onMouseUp', function(proceed, point) {
    console.log('Drop ', point.name + ': ', point.plotX);
    proceed.apply(this, Array.prototype.slice.call(arguments, 1));
  });
}(Highcharts));

(function(H) {
  H.wrap(Highcharts.seriesTypes.networkgraph.prototype, 'onMouseDown', function(proceed, point) {
    console.log('Drag ', point.name + ': ', point.plotX);
    proceed.apply(this, Array.prototype.slice.call(arguments, 1));
  });
}(Highcharts));

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

API参考:https://www.highcharts.com/docs/extending-highcharts/extending-highcharts

© www.soinside.com 2019 - 2024. All rights reserved.