2

私はこのようなハイチャートを持っています: フィドルデモチャート これはPHPのサーバー上でデータを使用して生成されていますが、データの数がゼロの場合はURLを持たせたくありません(表示されるものがないため)。

これらのバーのみのリンクを無効にするようにチャートに指示するにはどうすればよいですか?

if($value['category'] > 0){
        $chartActive .= $comma."{y:".$value['category'].", url: '/section/of/site/index.php'}";
    }else{
        $chartActive .= $comma."{y:0, url: javascript:void(0)}";
    }

これは、次のようにチャートに追加されます。

plotOptions: {
            column: {
                stacking: 'normal',
                dataLabels: {
                    enabled: true,
                    color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || '#333'
                }
            },
            series: {
                cursor: 'pointer',
                point: {
                    events: {
                        click: function() {
                            location.href = this.options.url;
                        }
                    }
                }
            }
        },
        series: [{
            name: 'Active',
            data: [<?php echo $chartActive; ?>]
        },

ご覧のとおり、URLはplotOptionsのシリーズ部分で定義されているため、常に存在します。現在の方法でURLを実行すると、リンクは機能しますが、mysite.com/undefinedに移動します。

何かアドバイスをいただければ幸いです。

マーク

4

1 に答える 1

1

URL を設定する前に、クリック イベントでポイントに値があるかどうかをテストできます。ただし、空のポイントには引き続きポインターカーソルが表示されます。まだそれを回避する方法は見つかりません。


series: {
    cursor: 'pointer',
    point: {
        events: {
            click: function() {
// if you've more than one series then you'll have to sum up the value for the stack
                if (this.y != 0) {  
                    location.href = this.options.url;
                }
            }
        }
    }
}

于 2012-05-18T09:14:51.113 に答える