在隐藏元素中绘制Google Chart

Khr*_*rys 0 jquery hidden google-visualization twitter-bootstrap

尝试在没有幸运的情况下在隐藏元素中渲染Google图表.小提琴波纹管有一个带引导标签的例子:

小提琴

安德鲁在这里得到了一些帮助:如何在显示标签时绘制谷歌图表?但是图表现在可以在我与它交互的任何时候重新渲染(例如使用范围过滤器).

HTML代码是:

<div class="container">
    <div class="tabbable">
        <ul class="nav nav-tabs" data-tabs="tabs">
            <li class="active">
                <a href="#A" data-toggle="tab">Tab A</a>
            </li>
            <li class="">
               <a href="#B" data-toggle="tab">Tab B</a>
            </li>
            <li class="">
                <a href="#C" data-toggle="tab">Tab C</a>
            </li>
        </ul>
        <div class="tab-content">
            <div class="tab-pane active" id="A">
                <div id='ChartA'></div>
            </div>
            <div class="tab-pane" id="B">
                <div id='ChartB'></div>
            </div>
            <div class="tab-pane" id="C">
                <div id='ChartC'></div>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

所有的JS代码都在小提琴中.

Noz*_*Noz 5

一个简单的例子,我在这里所做的就是在标签显示每个标签触发事件时重新加载图形.我确信这是一个更优雅的解决方案,但它可以完成这项工作.

$("a[href='#A']").on('shown.bs.tab', function (e) {
    google.load('visualization', '1', {
        packages: ['timeline'],
        callback: drawChartA
    });
});

$("a[href='#B']").on('shown.bs.tab', function (e) {
    google.load('visualization', '1', {
        packages: ['timeline'],
        callback: drawChartB
    });
});

$("a[href='#C']").on('shown.bs.tab', function (e) {
    google.load('visualization', '1', {
        packages: ['timeline'],
        callback: drawChartC
    });
});
Run Code Online (Sandbox Code Playgroud)