Javascript highstocks-图例位置并在多个图表的鼠标移动中刷新图例值
下面是一个场景。我有多个高股价,比如说一页10张图表。目前,我已经编写了500行代码来定位图例、显示工具提示和刷新mousemove上的图例值 图例的数量因图表而异On mousemove更新所有图例的值。我需要优化我正在使用的代码Javascript highstocks-图例位置并在多个图表的鼠标移动中刷新图例值,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,下面是一个场景。我有多个高股价,比如说一页10张图表。目前,我已经编写了500行代码来定位图例、显示工具提示和刷新mousemove上的图例值 图例的数量因图表而异On mousemove更新所有图例的值。我需要优化我正在使用的代码highstocksv1.2.2 上面的屏幕截图显示了2个图表返回,篮子,与篮子排列是图例,其值在每次鼠标移动时都会更新 请找到。在我的例子中,图例是用数百行代码在鼠标移动时定位和更新的值当我移动鼠标时,第一张图表的Return和Basket的图例值以及vs Bask
highstocks
v1.2.2
上面的屏幕截图显示了2个图表<代码>返回,篮子
,与篮子排列
是图例,其值在每次鼠标移动时都会更新
请找到。在我的例子中,图例是用数百行代码在鼠标移动时定位和更新的值当我移动鼠标时,第一张图表的Return
和Basket
的图例值以及vs Basket Spread
的图例值都会更新。它工作得很好,但是有很多javascript
代码。因此,我需要用更少的代码或highstocks内置功能对其进行优化。
更新
用户@wergeld已发布。正如我在屏幕截图中所示,当十字线在任何图表上移动时,所有图表的图例值都应该更新
是否可以用更少的代码实现相同的功能,或者在highstocks中是否有内置功能?
?
使用。基本示例是使用以下方法: 这是假设我将
修改为:
$('<li>')
.css('color', serie.color)
.text(serie.name + ': NA')
.click(function () {
toggleSeries(i);
})
.appendTo($legend);
那么,你是如何将我假设的y值附加到图例中的呢?谢谢你的回答。在我的例子中,当我在任何图表上移动鼠标时,我需要更新所有图表的图例。这就像是在窗格上移动鼠标。好的,将这段代码扩展到所有这些图表。为每个图表创建了一个外部图例。将鼠标盖添加到每个图表中,以更新正确的图例。我认为您想要的是捕获xAxis索引(假设所有图表对给定索引使用相同的类别/时间),然后使用该xAxis索引的值更新每个图表的图例文本。同样,使用此代码是可行的。您可以通过
此索引获得该点的索引。该索引使用编辑中引用的OHLC图表更新了答案。
$('<li>')
.css('color', serie.color)
.text(serie.name + ': NA')
.click(function () {
toggleSeries(i);
})
.appendTo($legend);
plotOptions: {
series: {
point: {
events: {
mouseOver: function () {
//using the ohlc and volumn data sets created at runtime.
var stockVal = ohlc[this.index][4]; // show close value
var stockVolume = volume[this.index][1];
var theChart = $('#container').highcharts();
var theLegendList = $('#legend');
$('li', theLegendList).each(function (l) {
var legendTitle = theChart.series[l].name;
if (l === 0) {
this.innerText = legendTitle + ': ' + stockVal;
}
if (l === 1) {
this.innerText = legendTitle + ': ' + stockVolume;
}
});
}
}
}
}
}