web-dev-qa-db-fra.com

Comment modifier l'événement de clic d'élément de légende des graphiques?

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

53
alexche8

Vous devez utiliser le rappel 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 cachez la ligne Tokyo.

Voir aussi documentation plotOptions pour l'événement en question. L'endroit où vous devez placer cela peut différer selon le type de graphique que vous utilisez.

69

Pour moi, l'événement legendItemClick devait être pour la série, pas pour 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/

10
Tony