Flot饼图给出了firebug中的错误:“未捕获的exception:绘图的尺寸无效,width = null,height = null”

我使用flot饼图绘制饼图。 但它显示了萤火虫的错误

未捕获的exception:绘图的尺寸无效,width = null,height = null

我也从样式表中给出了高度和宽度。 并尝试过这样的

怎么解决这个?

检查这些:

  • 首先包含jQuery库,然后是flot js库

  • 将整个代码包装在$(document).ready()处理函数中。

  • 你用正确的id绑定flot并且没有重复相同的id

  • 如果你的div是动态的,即在页面加载后出现在DOM中,那么在元素出现在DOM之后绑定plot()

我也有同样的问题。 我为

标签设置了一个高度和一个宽度,它修复了错误。

您可以使用内联css(如我所做)或JS来设置高度和宽度。 但是只有在设置

的高度后才应调用plot()函数

 

我也有同样的问题! 答案没有在上面列出,所以这是我的问题和解决方案。

 

使用Javascript:

   

所以。 注意绘图function。 起初,我在第一个参数中没有#。 这显然是必要的。 它解决了我的问题。

GG。

我发现的一个快速解决方案是在div标签之间输入一些内容。 例如:将

更改为

.

randomtext

就个人而言,我发现在这个快速解决方案中使用空格/制表符/换行符不起作用。

我有同样的问题将模板集成到rails。 这是一个糟糕的方式,但我只是注释抛出exception的行并添加2行来设置宽度和高度为0 – 它帮助了我。

 Canvas.prototype.resize = function(width, height) { if (width <= 0 || height <= 0) { // COMMENTED NEXT LINE // throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height); // NEW LINES ADDED width = 0; height = 0; } // ... others code } 

如果您将图表html放在div中,并给出“display:none”类,您将收到此错误。 您必须将图表html放在div中,当加载“jquery.flot.js”时,它将被赋予“display:block”类。

 

如果在加载“jquery.flot.js”时此html位于任何具有class="display: none" div中,请将其更改为display: block

因此,在渲染到图表之前,您需要重新获取DOM元素。 由于flot操纵元素并插入自己的元素,因此看起来它正在用自己的元素替换元素。

在渲染中,执行:

 $.plot($(".myChartId || #myChartClass"), myData, myOptions); 

这与在$(document).ready()没有任何关系,尽管将它放在其中是一个好习惯。

希望这可以帮助!