1

マウスホバーの円グラフでマウスクリックイベントを呼び出すにはどうすればよいですか?私は何かを試しましたが、必要なほどスムーズにクリックされません。コードサンプルは次のとおりです。

   plotOptions: {
        pie: {
            innerSize: '50%',
            size: 100,
            cursor: 'pointer',
            dataLabels: false
        },
        series: {
            allowPointSelect: true,
            type: 'pie',
            name: 'Coordinates',
            point: {
                events: {
                    mouseOver: function (e) {
                      pieChart.tooltip.hide();
                        var serie = this.series.data[this.x];
                        var waitBeforeSelect = setTimeout(function () {
                            clearTimeout(waitBeforeSelect);
                            serie.select();
                            serie.series.show();
                            pieChart.tooltip.refresh(serie);
                        }, 500);

                        var serieName = serie.name;
                        var textToShow = serieName.substr(0, serieName.indexOf(';'));
                        $('#pieChartInfoText').children().text(textToShow);
                        $('#pieChartInfoText').children().css('color', serie.color);
                    },
                    mouseOut: function () {
                        pieChart.tooltip.hide();
                    }
                }
            }
        }
    },
4

2 に答える 2

1

あなたが実際にやろうとしているのが単に mouseOver のポイントを選択することである場合 (私がする必要があったことで、あなたの質問につながりました)、mouseOver 関数で this.select(true) を呼び出すことができます。これにはタイムアウトの遅延はありませんが、追加することはできます。

于 2014-02-06T17:50:19.870 に答える
0

ありがとう、イゴール!

はい、それは私を大いに助けましたが、それにはいくつかの欠点がありますDonut.

コード スニペットは次のとおりです。

series: {
            allowPointSelect: true,
            type: 'pie',
            name: 'Coordinates',
            point: {
                events: {
                    mouseOver: function (e) {
                        var serie = this.series.data[this.x];
                        if ((undefined == previousSerie) || (serie != previousSerie)) {
                            var point = this;

                            if (!point.selected) {
                                pieChart.tooltip.shared = true;

                                var timeout = setTimeout(function () {
                                    clearTimeout(timeout);
                                    point.firePointEvent('click');

                                    pieChart.tooltip.shared = false;
                                    pieChart.tooltip.refresh(point);
                                }, 700);
                            }

                            var serieName = serie.name;
                            var textToShow = serieName.substr(0, serieName.indexOf(';'));
                            $('#pieChartInfoText').children().text(textToShow);
                            $('#pieChartInfoText').children().css('color', serie.color);
                            previousSerie = serie;
                        } else {
                            previousSerie = serie;
                        }
                    },
                    mouseOut: function () {
                        //  pieChart.tooltip.hide();
                    }
                }
            }
        }
于 2012-10-05T13:48:11.567 に答える