Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有op if语句导致谷歌图表失败?_Javascript_Google Visualization - Fatal编程技术网

Javascript 没有op if语句导致谷歌图表失败?

Javascript 没有op if语句导致谷歌图表失败?,javascript,google-visualization,Javascript,Google Visualization,一个javascriptif语句如何导致这种情况? if语句的主体总是被执行的,但似乎仅仅是if语句的存在就导致谷歌图表无法正常工作 google.load('visualization', '1', {packages: ['corechart']}); ... ... ... var chart1 = new google.visualization.PieChart(document.getElementById('chartId1')); var chart2 = new google

一个javascript
if
语句如何导致这种情况?
if
语句的主体总是被执行的,但似乎仅仅是
if
语句的存在就导致谷歌图表无法正常工作

google.load('visualization', '1', {packages: ['corechart']});
...
...
...

var chart1 = new google.visualization.PieChart(document.getElementById('chartId1'));
var chart2 = new google.visualization.PieChart(document.getElementById('chartId2'));
...

var drawCharts = function() {
  var chart1Width = jQuery('#chartId1').width();
  var chart2Width = jQuery('#chartId2').width();
  ...

  var data = new google.visualization.DataTable();
  var chartOptions = {...};

  data.addColumn(...);
  data.addColumn(...);
  data.addRows([...]);
  chart1.draw(data,chartOptions);
  console.log('chart 1 drawn');

  //if I uncomment the next line the chart is not drawn
  //if (chart2Width > 80) {
  data = new google.visualization.DataTable();
  data.addColumn(...);
  data.addColumn(...);
  data.addRows([...]);
  chart2.draw(data,chartOptions);
  console.log('chart 2 drawn');
  //if I uncomment the next line the chart is not drawn
  //} else {console.log('chart 2 not drawn');}
};
drawCharts();
jQuery(...).bind(...., function() {drawCharts();});
此外,只有在添加if语句时,我才能从
chart2.draw(…)中获得大量异常行:
错误:属性cy=“NaN”的值无效
错误:属性d=“MNaN,NaNL226,NaNL226,1.5L409.5,1.5”的值无效
错误:属性d=“MNaN,NaNL206,NaNL206,1.5L22.5,1.5”的值无效
,等等

因为
console.log('绘制图表2')发生在任何一种情况下,这意味着
if
语句应该没有效果。。。但是图表没有显示,我也有例外


如果一个javascript
语句导致这个问题,它怎么可能呢?

我在尝试绘制之前,通过强制图形容器的高度来解决这个问题

if (chart2Width > 80) {
  jQuery('#chartId2').height(chart2Width/2);
  data = new google.visualization.DataTable();
  data.addColumn(...);
  data.addColumn(...);
  data.addRows([...]);
  chart2.draw(data,chartOptions);
  console.log('chart 2 drawn');
} else {
  console.log('chart 2 not drawn');
}
显然,
chartArea.height
配置选项没有按预期工作


仍然不知道为什么在不可见的情况下渲染图形会导致忽略可忽略的错误,但是如果高度没有明确设置,那么当图形变为可见时,这些错误是必需的…

因此,当您输入if语句时,它不工作,当它工作不正常时。
chart2Width
就在if语句之前?@BrianShamblen
chart2Width
类似于250+,但当页面加载时,根据图表是否隐藏,它可能是25或更少。在使用相同的工具绘图之前,我还尝试重新说明
chart2
results@Mikeychart2在显示时可以正常工作,但其他4个隐藏的图表在每次尝试绘制时都会导致几十个错误,错误是因为图表不可见且“宽度”小于25,而google以负长度呈现svg。。。因此,我假设如果我试图通过进行宽度检查来阻止它,这将阻止在图表隐藏时绘制,但相反,它会导致图表在可见时无法工作,从而使情况变得更糟