chart.getSelection() 不能与 google 条形图一起正常工作


drawBarChart = function (data) { 
//few statements goes here which sets options which are being passed to chartDraw i.e. t.options.chart.options
gChart = new google.visualization.BarChart(chartingPlace);
        //setTimeout(function () {
        // t.options.chart.options.height = ((t.chart.size.height) - 40) + "px";
        ////console.log(JSON.stringify(t.options.chart.options));
        //google.visualization.events.addListener(gChart, 'ready', function () {
            // grab a few details before redirecting
            google.visualization.events.addListener(gChart, 'select', function () {
                var selectedItem = gChart.getSelection()[0];
                console.log(gChart.getSelection());
                if (selectedItem) {
                    var topping = data.getValue(selectedItem.row, 0);
                    alert('The user selected ' + topping);
                }
           // });
        });
gChart.draw(data, t.options.chart.options);
}

我的应用程序具有针对不同方案显示的许多图表。我的要求是,单击谷歌条形图中的条形,然后打开与条形名称关联的新选项卡。为此,我尝试在条形图上使用直接的"选择"事件,如下所示:

google.visualization.events.addListener(gChart, 'select', function () {
                    var selectedItem = gChart.getSelection()[0];
                    console.log(gChart.getSelection());
                    if (selectedItem) {
                        var topping = data.getValue(selectedItem.row, 0);
                        alert('The user selected ' + topping);
                    }
});

但是我无法得到,这为 gChart.getSelection(( 返回了空数组,所以我尝试了上面第一个代码中提到的带有"ready"事件的代码。它有效,但输出不一致。有时它给出空数组,有时给出选定的对象。

我仍然无法找到为什么它表现出这种行为

更多信息:我的应用程序有不同的选项卡,在其上显示条形图、折线图、面积图、组合图的数量。 getSelection(( 适用于折线图,但无法获得与条形一致的输出。

任何帮助都是可观的。

请不要将其标记为重复,因为我经历了其他类似的问题,但它们没有回答我的问题,我没有该特权,所以我无法在要求更多澄清的回复中发表评论。类似的问题在这里:谷歌可视化-条形图上的点击事件是堆叠的:真

请帮忙!

提前谢谢你!

更新:我无法从这里得到任何答案或任何回应。这真的非常令人失望。

解决方案:这就是我如何解决这个问题的方法:getSelect 无法为我工作,所以我尝试在条形文本上单击事件。通过单击事件,我可以在栏上获取文本并将其链接到opn新选项卡。

如果有人需要代码解决方案,请告诉我。

谢谢。

请浏览下面的代码片段,我更正了,或者你可以说以不同的方式组织代码。如果您需要进一步的解释,请告诉我。

google.visualization.events.addListener(googleChartObj, 'select', function () {
                var selectedBar = googleChartObj.getSelection();
                ////console.log(selectedBar);
                data.getRowLabel(selectedBar[0].row);
               /// for Bar charts, normally row-parameters are used
               /// manipulate on 'data' which refers to data-table to get desired results
            });

最新更新