使用Javascript设计的家谱

时间:2013-08-29 15:46:25

标签: javascript google-visualization

我正在使用Google的可视化:组织结构图库,

文档链接:https://developers.google.com/chart/interactive/docs/gallery/orgchart

我正在尝试更改样式并为每个节点创建链接。

我一直在尝试使用: chart.setRowProperty((nodenumber), 'style', 'background-color:#FFF'); 对于每个节点但没有成功。我放置代码的地方只会崩溃脚本。知道为什么吗?从每个独立节点创建链接的最佳方法是什么?

使用Javascript:

<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
  google.load('visualization', '1', {packages:['orgchart']});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'name');
    data.addColumn('string', 'parent');
    data.addColumn('string', 'hover');
    data.addRows([
      ['Parent', '', ''],
      ['Kid1', 'Parent', ''],
      ['Kid2', 'Parent', ''],
      ['GreatKid3', 'Kid1', ''],
      ['GreatKid4', 'Kid1', ''],
      ['GreatKid5', 'Kid2', ''],
      ['GreatGreatKid6', 'GreatKid5', ''],
      ['GreatGreatKid7', 'GreatKid5', ''],

    ]);
    var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
    chart.draw(data, {allowHtml:true, allowCollapse:true});
    chart.collapse(1,true);
    chart.collapse(2,true);
  }
</script>

CSS

#chart_div{
    width:800px;
}

HTML

 <body>
    <div id='chart_div'></div>
  </body>

1 个答案:

答案 0 :(得分:2)

它崩溃了脚本,因为OrgChart对象没有#setRowProperty方法 - 你想使用DataTable #setRowProperty方法:

data.setRowProperty((nodenumber), 'style', 'background-color:#FFF');

此外,在节点上设置“background-color”样式将无法执行您想要的操作,因为有一个“背景”样式将覆盖它,因此您必须将“background:#FFF”设置为实际获取要显示的背景颜色。以下是基于您的代码的示例:http://jsfiddle.net/asgallant/YZ7CB/