Ich versuche, die Links zu machen in meinem Diagramm zu arbeiten, aber ich die folgende Fehlermeldung, wenn eine der Kuchen Donut Versionen klicken:Highchart Kuchen Donut: Fehler beim Klicken auf URL
{"error": "Please use POST request"}
ich hochgeladen es zu meinem Web-Server und ich sehe, dass es einfach als "undefined" zurückgibt. (Www.mywebsite.com/undefined)
Hier ist der Code ich verwende:
$(function() {
var colors = Highcharts.getOptions().colors,
categories = ['Agua', 'Gas', 'Electricidad'],
data = [{
y: 17.5,
color: '#c27ba0',
drilldown: {
name: 'Agua',
categories: ['Lavadora', 'Fregadero de platos', 'Inodoro', 'Regadera del baño'],
data: [5, 5, 5, 5],
url: ['https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com'],
color: '#c27ba0'
}
}, {
y: 17.5,
color: '#f1c232',
drilldown: {
name: 'Gas',
categories: ['Sistema Calefacción', 'Calentador de agua', 'Estufa', 'Secadora de ropa'],
data: [5, 5, 5, 5],
url: ['https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com'],
color: '#f1c232'
}
}, {
y: 72,
color: '#e06666',
drilldown: {
name: 'Electricidad',
categories: ['Aire acondicionado', 'Ventilador', 'Plancha', 'Secadora de Cabello', 'Focos',
'Lavadora', 'Televisión', 'Refrigerador', 'Horno de microondas', 'Aspiradora', 'Licuadora', 'Estereo', 'Cafetera', 'Computadora','Tostador','Extractor'],
data: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5],
url: ['https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com', 'https://yahoo.com'],
color: '#e06666'
}
}],
browserData = [],
versionsData = [],
i,
j,
dataLen = data.length,
drillDataLen,
brightness;
// Build the data arrays
for (i = 0; i < dataLen; i += 1) {
// add browser data
browserData.push({
name: categories[i],
y: data[i].y,
color: data[i].color,
url: data[i].url
});
// add version data
drillDataLen = data[i].drilldown.data.length;
for (j = 0; j < drillDataLen; j += 1) {
brightness = 0.2 - (j/drillDataLen)/5;
versionsData.push({
name: data[i].drilldown.categories[j],
y: data[i].drilldown.data[j],
color: Highcharts.Color(data[i].color).brighten(brightness).get()
});
}
}
// Create the chart
$('#container').highcharts({
chart: {
type: 'pie'
},
title: {
text: 'Ahorra Energia'
},
yAxis: {
title: {
text: 'Fuente de Energia
}
},
plotOptions: {
pie: {
shadow: false,
center: ['50%', '50%'],
}
},
tooltip: {
valueSuffix: '%'
},
series: [{
name: 'Energia',
show: false,
data: browserData,
size: '60%',
dataLabels: {
formatter: function() {
return this.y > 5 ? this.point.name : null;
},
color: '#ffffff',
distance: -60
}
}, {
name: 'Versions',
data: versionsData,
size: '80%',
innerSize: '50%',
point: {
events: {
click: function() {
location.href = this.series.options.url;
}
}
},
dataLabels: {
formatter: function() {
return this.point.name
},
color: 'black',
distance:-10
}
}]
});
});
Mein Code ist in jsfiddle auch.
Ich habe auch versucht, es funktioniert, indem Sie die Point-> Events-> Click-Funktion aus der Reihe PlotOptions ohne Erfolg zu bewegen.
Wie kann ich das beheben?
Ich fand nur eine URL (Punkt-zu yahoo.com) in Ihrem Code. Sollen alle drei inneren Kuchenscheiben URLs haben? Erwarten Sie außerdem, dass der Benutzer auf die inneren Kreissegmente klickt oder können sie auch auf die äußeren Kreissegmente klicken? Wie sollen diese Klicks gehandhabt werden? –
Ah, mir ist gerade aufgefallen, dass deine Datei nicht mit dem Code übereinstimmt, den du hier gepostet hast. –