我可以手动跳转setOnLoadCallback吗?

时间:2015-04-12 17:12:31

标签: javascript jquery charts google-visualization

我有一个使用谷歌图表的网站,我最近添加了平滑的页面过渡,使其导航更有趣,但由于这些平滑的变化,setOnLoadCallback没有开火,所以我的图表没有被绘制。

此行永远不会被触发: google.setOnLoadCallback(drawChart);

有没有办法手动跳闸,以便绘制图表?

您可以在此处查看该网站:

http://www.gta-bawsaq-billionaire.com/

如果您导航到股票页面,您将看不到任何图表,但如果您刷新则会显示。

例如,点击 PS3 ,然后点击 Betta Pharmacuticals ,导航至http://www.gta-bawsaq-billionaire.com/stock/ps3/BET。不会出现图表。但是,单击上面的链接(或在页面上按F5键),将显示图表。

1 个答案:

答案 0 :(得分:0)

我通过更改违规行来解决了这个问题:

google.setOnLoadCallback(drawChart);

$(document).ready(drawChart);

然后使用这段代码手动触发$(document).ready()(取自here);

;(function($, undefined) {
    var isFired = false;
    var oldReady = jQuery.fn.ready;
    $(function() {
        isFired = true;
        $(document).ready();
    });
    jQuery.fn.ready = function(fn) {
        if(fn === undefined) {
            $(document).trigger('_is_ready');
            return;
        }
        if(isFired) {
            window.setTimeout(fn, 1);
        }
        $(document).bind('_is_ready', fn);
    };
})(jQuery);