53 votes

Comment modifier l'événement de clic sur l'élément de légende de Highcharts ?

J'ai besoin de modifier l'événement de clic sur les éléments de légende de Highcharts. Démonstration Highcharts http://www.highcharts.com/demo/line-basic . Je veux par exemple que la première action soit une alerte et que la deuxième action soit une action par défaut (nettoyer la ligne Tokyo du graphique). Merci. Désolé si la question n'est pas claire.

69voto

Joy Points 9421

Vous devez utiliser le legendItemClick comme le code suivant

plotOptions: {
        line: {

           events: {
                legendItemClick: function () {
                   alert('I am an alert');
                   //return false; 
                   // <== returning false will cancel the default action
                    }
                }
            ,
            showInLegend: true
        }
    }

Voici violon de travail qui affiche une alerte lorsque vous cliquez sur des légendes comme sur Tokyo, puis cache la ligne Tokyo.

Consultez la doc plotOptions ici http://www.highcharts.com/ref/#plotOptions-line-events--legendItemClick

10voto

Tony Points 105

Pour moi, l'événement legendItemClick devait concerner la série, et non la ligne. Par exemple :

plotOptions: {
        series: {
            events: {
                legendItemClick: function(event) {
                    var visibility = this.visible ? 'visible' : 'hidden';
                    if (!confirm('The series is currently '+ 
                                 visibility +'. Do you want to change that?')) {
                        return false;
                    }
                }
            }
        }
    },

Exemple tiré de Highcharts : http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/plotoptions/series-events-legenditemclick/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X