我一直在研究Highstock。
为什么我这样做" this.series.name" (在工具提示中:{formatter:...})我收到错误"无法读取属性' name'未定义" ? 而#34; this.x"工作
问题示例:
tooltip: {
formatter: function () {
// work:
//var s = '<b>' + this.x + '</b>';
// does not work:
var s = '<b>' + this.series.name + '</b>';
$.each(this.points, function () {
s += '<br/>1 USD = ' + this.y + ' EUR';
});
return s;
}
},
API的文档: http://api.highcharts.com/highstock/tooltip.formatter
答案 0 :(得分:1)
您可以使用pointFormatter
tooltip: {
pointFormatter: function () {
//console.log(this);
/*use this to see various data including series name in array. when using Formatter tooltip option only x and y values are there. so error comes.So use pointFormatter to get series name in tooltip*/
var s = '<b>' + this.series.name + '</b>';
s += '<br/>1 USD = ' + this.y + ' EUR';
return s;
}
},
答案 1 :(得分:0)
series: [{
name: 'USD to EUR',
data: usdeur
}]
是一个数组,因此您应该使用this.series[0].name
。
答案 2 :(得分:0)
我在日志中看到的内容:
Object:
points: Array(1)
0: Object
color:"#69A942"
...
series: r
...
name: "..."
...
x: 1492740120000
y: 0
但是对于工具提示,它是:
Object:
series: r
name: "..."
x: 1492740120000
y: 0
所以当我这样做时,我得到了每个标志的错误“无法读取未定义的属性'0':
if(this.points[0].series.name !== 'Changement de référence' ){...}
我想做一个if条件,检查“this.series.name”是否存在,如果它不是“......”(某事)
我试过了:
if(typeof this.series.name != "undefined" && this.series.name != 'Changement de référence'){
它不起作用,你知道吗? :)
答案 3 :(得分:0)
使用this.points[0].series.name
,例如下面。
Highcharts.stockChart('container', {
tooltip: {
formatter: function () {
var s = '<b>' + this.points[0].series.name + '</b>';
$.each(this.points, function () {
s += '<br/>1 USD = ' + this.y + ' EUR';
});
return s;
}
},
rangeSelector: {
selected: 1
},
series: [{
name: 'USD to EUR',
data: usdeur
}]
});