简体   繁体   English

在点击切换Google组织结构图即?

[英]On Click toggle Google org chart viz?

I am reading in JSON data and trying to construct the nodes from that data. 我正在读取JSON数据,并尝试从该数据构造节点。 I want the ability to click and toggle showing more under the person. 我希望能够单击并切换在此人下显示更多的功能。 It was working without reading in JSON data, but now that I am reading from there it broke? 它可以不读取JSON数据而工作,但是现在我从那里读取它坏了吗? So I am not too sure whats wrong? 所以我不太确定怎么了? Here is the toggle snippit, and I added a jsfiddle to look at the full code? 这是切换代码段,我添加了一个jsfiddle来查看完整代码? Any ideas? 有任何想法吗? Am I constructing the JSON data wrong? 我在构造JSON数据时出错吗?

    var runonce = google.visualization.events.addListener(chart, 'ready', function() {
    var previous;
    $('#chart_div').on('click', 'div', function () {
        console.log(this);
        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();
    });
    google.visualization.events.removeListener(runonce);

    for (var i = 0; i < data.getNumberOfRows(); i++) {
        chart.collapse(i, true);
    }
});

http://jsfiddle.net/w8Ytq/63/ http://jsfiddle.net/w8Ytq/63/

I would recommend using the select event on the chart, onclick didn't seem to fire for me. 我建议您在图表上使用select事件, onclick似乎对我不起作用。

Another problem may be that each row is being collapsed after the initial draw. 另一个问题可能是在初始绘制后每一行都被折叠了。
Although the top person is clicked, since the other rows are still collapsed they fail to appear, not sure. 尽管单击了最高人员,但由于其他行仍处于折叠状态,因此无法显示(不确定)。

 var orgChartData = [ { "Name": "Tom", "Role": "VP", "Email": "Tom@aol.com", "Manager": "" }, { "Name": "Ben", "Role": "Manager", "Email": "Ben@aol.com", "Manager": "Tom" }, { "Name": "Billy", "Role": "Manager", "Email": "Billy@aol.com", "Manager": "Tom" } ]; google.load('visualization', '1', {packages: ['orgchart']}); google.setOnLoadCallback(drawChart); function drawChart() { var previous = 0; var data = new google.visualization.DataTable(); data.addColumn('string', 'Name'); data.addColumn('string', 'Manager'); data.addColumn('string', 'ToolTip'); for (i = 0; i < orgChartData.length; i++) { data.addRow( [ { v: orgChartData[i].Name, f: orgChartData[i].Name + "<br>" + orgChartData[i].Role + "<br>" + '<a href="mailto:' + orgChartData[i].Email + '?Subject=Service Request" target="_top">' + orgChartData[i].Email + '</a>' }, orgChartData[i].Manager, orgChartData[i].Role ] ); } var chart = new google.visualization.OrgChart(document.getElementById('chart_div')); google.visualization.events.addListener(chart, 'select', toggleDisplay); chart.draw(data, { allowHtml: true }); function toggleDisplay() { 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([{row: row, column: null}]); } } 
 <script src="https://www.google.com/jsapi"></script> <div id="chart_div"></div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM