我使用来自highcharts的圆环饼图,我想为每个数据添加不同的网址。例如
data = [{
y: 35,
color: colors[0],
url: 'http://www.google.com',
drilldown: {
name: 'Animals',
categories: ['Cat', 'Dog', 'Fish'],
data: [20, 10, 5],
url: ['http://www.yahoo.com','http://www.facebook.com','http://www.hotmail.com'],
color: colors[0]
}
}
网址“http://www.google.com”正常工作,但是在向下钻取的网址不起作用。我把它串联起来
point: {
events: {
click: function () {
location.href = this.options.url;
}
}
}
并将其放入数据数组
for (i = 0; i < dataLen; i += 1) {
// add service data
servicesData.push({
name: categories[i],
y: data[i].y,
color: data[i].color,
url: data[i].url
});
// add status data
drillDataLen = data[i].drilldown.data.length;
for (j = 0; j < drillDataLen; j += 1) {
brightness = 0.2 - (j / drillDataLen) / 5;
statusData.push({
name: data[i].drilldown.categories[j],
y: data[i].drilldown.data[j],
color: Highcharts.Color(data[i].color).brighten(brightness).get(),
url: data[i].drilldown.data[j].url
});
}
}
我的错误是什么?
答案 0 :(得分:1)
在您的内循环(// add status data
)中设置:
url: data[i].drilldown.data[j].url
如果您查看data
结构,则会发现data[i].drilldown.data[j]
没有url
属性。 data[j]
只是一个简单的数字,而data[i]
是一个对象。
快速修复将其更改为:
url: data[i].drilldown.url[j]
或者,您可以重新构建数据,以便内部数据具有与外部数据相同的格式,使它们成为对象。