单击选项卡重新充电

时间:2017-01-30 13:08:24

标签: javascript jquery html charts google-visualization

我需要点击链接重新加载标签的内容,因为我在rendering上尝试Google Chart个问题。

我制作了代表问题的JsFiddle。注意两个标签的渲染差异。

我提出了延迟,但当我访问另一个标签时。仍然会发生错误的渲染。

setTimeout(function () {
            chart.draw(data, options);
        }, 2000);

2 个答案:

答案 0 :(得分:1)

需要等到图表的容器可见,然后再进行第一次绘图

请参阅以下工作代码段...

$(document).foundation();

$('#sac-tabs').on('change.zf.tabs', function() {
  switch ($(this).children('.is-active').text().trim()) {
    case 'Tab 1':
      drawVisualization();
      break;

    case 'Tab 2':
      drawVisualization2();
      break;
  }
});

google.charts.load('current', {
    callback: drawVisualization,
    packages: ['corechart']
});

function drawVisualization() {
    var data = google.visualization.arrayToDataTable([
        ['Departamento', 'Concluídas', 'Andamento', 'Pendentes'],
        ['Vendas', 5, 6, 2],
        ['Peças', 3, 4, 6],
        ['Serviços', 1, 2, 3],
        ['Administrativo', 7, 5, 3]
    ]);

    var options = {
        title: 'Gráfico',
        hAxis: {title: 'Departamento'},
        seriesType: 'bars',
        colors: ['#21BA45', '#F90', '#DC3912'],
        series: {5: {type: 'line'}}
    };

    var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}

function drawVisualization2() {
    var data = google.visualization.arrayToDataTable([
        ['Departamento', 'Concluídas', 'Andamento', 'Pendentes'],
        ['Vendas', 5, 6, 2],
        ['Peças', 3, 4, 6],
        ['Serviços', 1, 2, 3],
        ['Administrativo', 7, 5, 3]
    ]);

    var options = {
        title: 'Gráfico',
        hAxis: {title: 'Departamento'},
        seriesType: 'bars',
        colors: ['#21BA45', '#F90', '#DC3912'],
        series: {5: {type: 'line'}}
    };

    var chart = new google.visualization.ComboChart(document.getElementById('chart_div2'));
    chart.draw(data, options);
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.1.2/foundation.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.1.2/foundation.min.css">
<div class="row">
    <div class="medium-12 columns">
        <ul class="tabs" data-tabs id="sac-tabs">
            <li class="tabs-title is-active">
                <a href="#panel1" aria-selected="true">Tab 1</a></li>
            <li class="tabs-title"><a href="#panel2">Tab 2</a></li>            
        </ul>
        <div class="tabs-content" data-tabs-content="sac-tabs">
            <div class="tabs-panel is-active" id="panel1">
                <div class="row">
                    <div class="medium-12 columns">
                    <p>
                    Expected outcome
                    </p>
                    <div id="chart_div"></div>
                    </div>
                </div>
            </div>
            <div class="tabs-panel" id="panel2">
                <div class="row">
                    <div class="medium-12 columns">
                    <p>
                    Not a Problem
                    </p>
                       <div id="chart_div2"></div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

答案 1 :(得分:0)

我遇到了你的问题,

仅活动标签绘制全宽,草稿。

对于解决方案,您想要考虑一下,当您绘制第二个选项卡草稿时,那个时间活动的第二个选项卡在运行后使用jQuery&#34;图表。绘制&#34; commnad。

我希望你理解。享受:)