如何在谷歌组织结构图中隐藏选定项目的HTML类
本文关键字:项目 HTML 隐藏 谷歌 结构图 | 更新日期: 2023-09-27 17:54:46
我有一个google组织结构图这是JSFIDDLE中的源代码我有这个函数
if(collapsed == 0)
{
$(function(){
$(".plus").hide();
});
}
我有一个名为plus的类,它有一个显示每个节点的图片,但我想如果一个节点没有子项,我想要这个类(plus image)仅为没有子项的项目隐藏。在我的例子中,它隐藏了所有节点,我不需要它。
在我的情况下,人Carol
没有孩子,他不需要有与Alice
相同的+图像
谢谢
当你使用类选择器隐藏元素时,它将隐藏所有存在类的元素,你应该使用其他选择器识别节点
如果你需要隐藏节点,那么你将不得不更新数据本身,这是你可以做到的。
更新小提琴:http://jsfiddle.net/w8Ytq/102/
var runOnce = google.visualization.events.addListener(chart, 'ready', function() {
// set up + sign event handlers
var previous;
$('#chart_div').on('click', 'div.plus', function () {
var selection = chart.getSelection();
var row;
if (selection.length == 0) {
row = previous;
}
else {
row = selection[0].row;
previous = row;
}
var collapsed = chart.getCollapsedNodes();
var collapse = (collapsed.indexOf(row) == -1);
chart.collapse(row, collapse);
chart.setSelection();
// get a new list of collapsed nodes
collapsed = chart.getCollapsedNodes();
// set up event listener to recollapse nodes after redraw
var runOnce2 = google.visualization.events.addListener(chart, 'ready', function() {
google.visualization.events.removeListener(runOnce2);
for (var i = 0; i < collapsed.length; i++) {
chart.collapse(collapsed[i], true);
}
});
var children =chart.getChildrenIndexes(row);
for(var i=0;i< children.length;i++)
{
var childrenOfChildren = chart.getChildrenIndexes(children[i]);
if(childrenOfChildren == "")
{
var col1 = data.getValue(children[i],0);
var col2 = data.getValue(children[i],1);
var col3 = data.getValue(children[i],2);
data.removeRow(children[i]);
data.insertRows(children[i], [[col1, col2, col3]]);
}
}
// redraw the chart to account for the change in the sign
chart.draw(data, options);
});