Mit diesen Ereignissen unten erkennen, sollte ich in der Lage sein zu erkennen, wenn die Handlungsstränge oder Plotbands mouseOvered werden und angeklickt in meiner app, aber es passiert nichts :(Kann nicht Klickfunktion HighCharts plotlines & plotBands.events
http://api.highcharts.com/highcharts/xAxis.plotLines.events
xAxis: [
{
dateTimeLabelFormats: { hour: '%l:%M%P' },
id: 'main-x-axis',
events: {
setExtremes: prepareExtremes,
afterSetExtremes: afterSetExtremes
}
},
{
id: 'x-axis-alert',
plotLines: [{
id: 'alert-plotline',
zIndex: 1001,
events: {
click: function() {
console.log('plotLines Click')
},
mouseover: function() {
console.log('plotLines hover')
},
mouseout: function() {
console.log('plotLines out')
}
}
}],
plotBands: [{
id: 'alert-plotband',
zIndex: 1001,
events: {
click: function() {
console.log('plotBands clicked!');
},
mouseover: function() {
console.log('plotBands hover')
},
mouseout: function() {
console.log('plotBands out')
}
}
}],
linkedTo: 0,
showEmpty: false,
lineWidth: 0,
gridLineWidth: 0,
minorGridLineWidth: 0,
lineColor: 'transparent',
labels: { enabled: false }
}],
series [{
{
id: 'priceline',
name: 'price',
showInLegend: false,
zIndex: 1,
color: '#4C73FF',
data: [],
dataGrouping: { enabled: false },
point: {
events: {
mouseOver: function(event) {
TooltipFactory.updateToolTipPoints('price', event.target);
}
}
}
},
{
id: 'alert-series',
name: 'alert',
yAxis: 'y-axis-alert',
xAxis: 'x-axis-alert',
data: [],
color: 'rgba(254,235,236,0.1)',
lineColor: 'transparent',
showInLegend: false,
dataGrouping: { enabled: false },
lineWidth: 0,
minorGridLineWidth: 0,
point: {
events: {
click: function (event) {
console.log('alert-series clicked!');
}
}
}
}
}]
die einzigen Mausaktionen kann ich erkennen, sind in der TooltipFactory.formatTooltip
und chartClick
Funktionen unten.
Auch das chartClick wird nur aktiviert, wenn Sie auf die Punkte des blauen Liniendiagramms klicken.
vm.config = {
global: { useUTC : false },
options: {
ignoreHiddenSeries: false,
chart: {
backgroundColor: '#474747',
title: { text: '' },
subtitle: { text: '' },
renderTo: 'chart1',
zoomType: 'x',
events: {
load:() => {}
}
},
rangeSelector: {enabled: false},
tooltip: {
shared: true,
useHTML: true,
backgroundColor: null,
borderWidth: 0,
shadow: false,
formatter: function(tooltipObj) {
return TooltipFactory.formatTooltip(tooltipObj, this.points);
}
},
exporting: {enabled: false},
plotOptions: {
series: {
turboThreshold: 0,
events: {
click: chartClick
}
},
area: { stacking: 'normal' },
column: { stacking: 'normal ' }
}
},
Die chartClick Funktion:
const chartClick = e => {
console.log('chartClick',e);
let extremes = chart.xAxis[0].getExtremes();
let endDate = Math.round(e.point.category/1000);
let startDate = Math.round(extremes.min/1000);
$scope.$emit("timestamp.clicked", endDate, startDate);
};
Sie erstellen leere plotBands/plotLines ohne irgendwelche from/to/y-Werte, daher wird plotBand/plotLine erstellt, aber nicht im Diagramm platziert. Es gibt also kein Element, das irgendwelche Ihrer Ereignisse auslösen könnte. Siehe Demos für [plotBands] (http://jsfiddle.net/xr9rw95t/) und [plotLines] (http://jsfiddle.net/b3L18jz6/) - von/bis/y sind definiert, so dass Sie die Linie/Band sehen können auf dem Diagramm. –
Ah Entschuldigung, ich habe gerade meine Serie hinzugefügt, damit Sie sehen können. –
Ich meine nicht Serie, sondern Werte für plotLine/plotBand :) Sehen Sie sich das von Ihnen gepostete Beispiel an (von API) und vergleichen Sie es mit Ihren Optionen. –