Javascript 单击“离开”时关闭谷歌饼图工具提示

Javascript 单击“离开”时关闭谷歌饼图工具提示,javascript,jquery,charts,google-visualization,google-pie-chart,Javascript,Jquery,Charts,Google Visualization,Google Pie Chart,我正在使用一个用于数据表示的。图表的工具提示包括用户可以单击的操作项。为了让工具提示保持足够长的打开时间,以便用户单击项目,我选择在单击/选择时显示工具提示,而不是在悬停时显示: tooltip: { trigger: 'selection' } 现在的问题是,关闭这些工具提示的唯一方法是在图表上进行另一个选择(从而显示另一个工具提示),或者单击以前选择的相同图例/饼图切片值 这是笨重的;对于良好的用户体验,我想让用户只需单击饼图周围的空白区域即可消除工具提示。 到目前为止,我找到的最接近的解

我正在使用一个用于数据表示的。图表的工具提示包括用户可以单击的操作项。为了让工具提示保持足够长的打开时间,以便用户单击项目,我选择在单击/选择时显示工具提示,而不是在悬停时显示:

tooltip: { trigger: 'selection' }
现在的问题是,关闭这些工具提示的唯一方法是在图表上进行另一个选择(从而显示另一个工具提示),或者单击以前选择的相同图例/饼图切片值

这是笨重的;对于良好的用户体验,我想让用户只需单击饼图周围的空白区域即可消除工具提示。

到目前为止,我找到的最接近的解决方案是,但第一个答案不起作用,第二个答案不允许通过单击关闭工具提示。问题似乎是图表周围的所有空白仍然被视为图表本身的一部分,而不是一个单独的元素。我试图通过检查单击元素的类型来绕过此限制,查看它是否为空格,如下所示:

function clearChartSelection(e) {

        if (!chartDOMElement.contains(e.srcElement) || e.srcElement.tagName.toUpperCase() == 'RECT') {
            chart.setSelection();
        }
    }
不幸的是,这也不起作用,因为legend元素有时呈现为矩形类型而不是文本(我仍在试图找出原因)在饼图中,图例单击也可以设置选择,我希望保留此功能。

现在我正在研究以下两条路径,但运气不佳:

  • 以其他方式区分切片/图例和空图表区域,或

  • 如果选择事件也被触发,则以某种方式防止单击事件


  • 我绝对愿意接受任何其他可能解决这个问题的想法。我想要的功能在一般的工具提示中非常常见,所以希望我错过了一些明显的东西。

    除了主体单击之外,
    使用图表的单击事件

    请参阅以下工作片段

    google.charts.load('current'{
    软件包:['corechart']
    }).然后(函数(){
    var data=google.visualization.arrayToDataTable([
    ['Label','Value'],
    [A',1],
    [B',2],
    [C',2],
    [D',2],
    [E',7]
    ]);
    变量选项={
    工具提示:{
    触发器:“选择”
    }
    };
    var container=document.getElementById('chart_div');
    var chart=newgoogle.visualization.PieChart(容器);
    google.visualization.events.addListener(图表“点击”,清除选择);
    document.body.addEventListener('click',clearSelection,false);
    图表绘制(数据、选项);
    选举职能(e){
    如果(!container.contains(e.src元素)){
    chart.setSelection();
    }
    }
    });
    
    html,正文{
    身高:100%;
    }

    非常简单,而且工作非常完美。非常感谢你!