I was successfully established my flot chart, based on this previous post
I want to enable to viewer to show/hide the series with a click. I found bunch of solutions
1) The onClick directly in the HTML is a bad idea when the scope of the Chart
object is not global. I changed it to a jquery event handler:
$('body').on 'click', 'a.legendtoggle', (event) ->
Chart.togglePlot($(this).data('index'))
return false
2) The series
object in the labelFormatter
function has no idx
property, so I used a variable inside the Chart
object:
labelFormatter: (label, series) ->
"<a href=\"#\" class=\"legendtoggle\" data-index=\"" + Chart.legendindex++ + "\">" + label + "</a>"
3) I also put your plot
object inside Chart
so that it can be accessed inside the togglePlot
function. And I changed the lines
to points
since your data has only one datapoint per series:
togglePlot: (seriesIdx) ->
someData = this.plot.getData()
someData[seriesIdx].points.show = not someData[seriesIdx].points.show
this.plot.setData someData
this.plot.draw()
return
That should be all I changed, but compare for yourself if I got everything.
Here is a working fiddle: http://jsfiddle.net/jhpgtxz1/2/
PS: Never again CoffeeScript for me :-(