如何在谷歌组织结构图中隐藏选定项目的HTML类

本文关键字:项目 HTML 隐藏 谷歌 结构图 | 更新日期: 2023-09-27 17:54:46

我有一个google组织结构图这是JSFIDDLE中的源代码我有这个函数

if(collapsed == 0)
     {       
       $(function(){  
           $(".plus").hide();
        });
      }

我有一个名为plus的类,它有一个显示每个节点的图片,但我想如果一个节点没有子项,我想要这个类(plus image)仅为没有子项的项目隐藏。在我的例子中,它隐藏了所有节点,我不需要它。

在我的情况下,人Carol没有孩子,他不需要有与Alice相同的+图像

谢谢

如何在谷歌组织结构图中隐藏选定项目的HTML类

当你使用类选择器隐藏元素时,它将隐藏所有存在类的元素,你应该使用其他选择器识别节点

如果你需要隐藏节点,那么你将不得不更新数据本身,这是你可以做到的。

更新小提琴: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);
    });