Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Charts 谷歌图表无法避免工具提示_Charts_Google Visualization_Tooltip - Fatal编程技术网

Charts 谷歌图表无法避免工具提示

Charts 谷歌图表无法避免工具提示,charts,google-visualization,tooltip,Charts,Google Visualization,Tooltip,从一项研究中,我发现Gannt Google图表上显示的工具提示是不可自定义的,因此我决定覆盖它以捕获由我的Gannt矩形触发的悬停事件,如下所示: google.visualization.events.addListener(chart, 'onmouseover', function (e) { openTooltip(data, e.row); }); 但现在的问题是,默认工具提示弹出窗口仍然打开,如何禁用默认工具提示?(图表选项/自定义jquery)没有任何选

从一项研究中,我发现Gannt Google图表上显示的工具提示是不可自定义的,因此我决定覆盖它以捕获由我的Gannt矩形触发的悬停事件,如下所示:

google.visualization.events.addListener(chart, 'onmouseover', function (e) {
        openTooltip(data, e.row);
    });

但现在的问题是,默认工具提示弹出窗口仍然打开,如何禁用默认工具提示?(图表选项/自定义jquery)

没有任何选项可以删除甘特图上的默认工具提示

工具提示是使用svg元素绘制的,当您将鼠标悬停在工具栏上时,这些元素会动态添加
我们可以使用
MutationObserver
来了解何时添加了工具提示
无法删除工具提示,因为它将破坏图表
但是我们可以使它不可见/所有元素都透明

请参阅以下工作片段

google.charts.load('current'{
软件包:[“甘特”]
}).然后(函数(){
var data=new google.visualization.DataTable();
data.addColumn('string','Task ID');
data.addColumn('string','Task Name');
data.addColumn(“日期”、“开始日期”);
data.addColumn(“日期”、“结束日期”);
data.addColumn('number','Duration');
data.addColumn('number','Percent completed');
data.addColumn('string','Dependencies');
data.addRows([
[‘研究’、‘寻找来源’,
新日期(2015,0,1),新日期(2015,0,5),空,100,空],
[“写”、“写纸”,
空,新日期(2015,0,9),日期(3),25,“研究,大纲”],
[“引用”、“创建参考书目”,
空,新日期(2015,0,7),日期(1),20,“研究”],
[‘完成’、‘交纸’,
null,新日期(2015,0,10),daystoms(1),0,'Cite,Write'],
[‘大纲’、‘大纲文件’,
空,新日期(2015,0,6),daystoms(1),100,“研究”]
]);
变量选项={
身高:275
};
var container=document.getElementById('chart_div');
var chart=newgoogle.visualization.Gantt(容器);
google.visualization.events.addOneTimeListener(图表'ready',函数(){
var observer=新的MutationObserver(函数(节点){
Array.prototype.forEach.call(节点,函数(节点){
如果(node.addedNodes.length>0){
Array.prototype.forEach.call(node.addedNodes,function(addedNode){
if((addedNode.tagName=='rect')&&(addedNode.getAttribute('fill')=='white')){
addedNode.setAttribute('fill','transparent');
addedNode.setAttribute('stroke','transparent');
Array.prototype.forEach.call(addedNode.parentNode.getElementsByTagName('text'),函数(标签){
label.setAttribute('fill','transparent');
});
}
});
}
});
});
观察者,观察(容器{
儿童名单:是的,
子树:真
});
});
图表绘制(数据、选项);
函数daysto毫秒(天){
返程天数*24*60*60*1000;
}
});


Yes@WhiteHat,它非常有用,我正在使用您的代码直接更改工具提示框内的文本,使用label.textContent。我还可以知道将在Array.prototype.forEach.call(addedNode.parentNode.getElementsByTagName('text')、函数(label))内迭代的文本框的数量吗?确定-->
addedNode.parentNode.getElementsByTagName('text')。长度