Highcharts jQuery渲染问题 - 所有浏览器

时间:2011-08-03 09:30:52

标签: javascript jquery highcharts

在尝试使用Highcharts

构建堆积柱形图时,我遇到了一个奇怪的问题

当图表呈现时,列不显示,直到您重新调整浏览器,导致图表重绘。 (我认为)! 图表的其余部分显示(轴,标题等),但不显示列本身。

我在IE,Firefox和Chrome中获得相同的行为。

我已将代码放在jsfiddle上 - http://jsfiddle.net/gd7bB/173/ 加载它,您应该看不到数据,调整浏览器窗口和“tada”的大小,数据出现(而不是列出现)!

对此的任何帮助都将受到广泛赞赏。

7 个答案:

答案 0 :(得分:7)

我遇到了完全相同的问题 - Highcharts JS v2.1.5(2011-06-22)无法与jQuery 1.7.1一起使用

更改为jQuery 1.6.1(我使用的最后一个稳定版本)后,它运行了。 有人应该查看其他版本的jQuery。

答案 1 :(得分:6)

删除第chart.render();

调用HighCharts构造函数时,无需隐式调用render

答案 2 :(得分:6)

我遇到了同样的问题 - 加载页面后,图表没有显示行(只有标题和图例)。任何浏览器调整大小或缩放图表后突然出现。

问题在于jQuery> 1.7(我现在的版本是1.8.2) 将Highcharts更新到最新版本(v2.3.3(2012-10-04))修复了问题(以及其他小问题)

答案 3 :(得分:3)

如果您在脚本末尾{div}容器resize(),则无需更改任何版本的Highcharts或Jquery。

例如:

$('#div').resize();

答案 4 :(得分:2)

使用jQuery 1.7.2 + HighCharts 3.0.2,问题通过使用:

解决
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        events: {
            load: function(event) {
                //When is chart ready?
                $(window).resize(); 
            }
        }        
    }, ..

这与@revo几乎相同,但使用'window'对象而不是'document'。

答案 5 :(得分:1)

也许有点晚了,但我遇到了与jQuery 1.9.1相同的问题,并且不想使用dotnet.highcharts将其降级为Highcharts。

如果您在那里创建一个新的Highchart e.g。

.InitChart(new Chart
 {
    DefaultSeriesType = ChartTypes.Line,
    MarginRight = 130,
    MarginBottom = 25,
    ClassName = "chart",
    Events = new ChartEvents { Load = "function(event) { $(document).resize(); }" }
  }) .....

您也可以使用它

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        events: {
            load: function(event) {
                //When is chart ready?
                $(document).resize(); 
            }
        }        
    }, ..

。 事件线是你需要的,然后你渲染你的图表

我希望它有所帮助,我有一些时间来弄清楚它是如何工作的:)

答案 6 :(得分:0)

"不那么精致"解决方案here,是最终为我解决的问题。

setTimeout(function() {
                $(window).resize();
            }, 0);

使用带有Python Django的名为DjangoChartit的包装的highcharts。