我在这里用自定义选项dygraphs实现了两个verticalCrosshair : true

https://rawgit.com/danielkrizian/dygraphs/master/tests/synchronize-Crosshair.html



当我将鼠标悬停在特定x点的任何图形上时,我希望所有图形都在该点显示垂直十字线。
到目前为止,我已经能够像下面这样在顶部图形(gs[0])上工作:

highlightCallback: function(e, x, pts, row) {
  var sel = gs[0].getSelection();
  gs[1].setSelection(sel);
},


当我将鼠标悬停在底部图表上时,什么也没有发生。如何在所有图形上使用for循环将其概括?

最佳答案

您应该将dygraphs对象放在一个数组中,并在highlightCallback中对其进行循环,从而更新除所有生成事件的dygraph之外的所有dygraph中的选择。

一种复杂的情况是highlightCallback不能将音标对象作为参数。这是API的疏忽,我希望在dygraphs 2.0中修复。设置highlightCallback时,可以通过在闭包中捕获相关的Dygraph对象来解决该问题。

请参阅synchronize demo以获取一些启发。

08-07 18:46