0

我正在尝试创建一个包含两个谷歌图表的循环/滑块。我可以使用下面的代码在页面上单独显示它们,但是当空间变得宝贵时,我决定使用滑块/循环。使用下面的代码。第一个图表绘制但是当第二个图表滚动到视图中时。没有图表。它只说:无法在 Chrome 上获取未定义或 null 引用的属性“长度”:无法读取 null 的属性“长度”。我意识到当一个图表可见时,另一个图表不可见。但是我对 javascript 的不熟悉使得很难想出一个答案,它会在适当的时间将 display:'block' 变成 display:'none 并返回。任何帮助将非常感激。

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

        function drawCharts() {
            var data1 = google.visualization.arrayToDataTable(<% =jsostring%>);
            var options1 = {
                title: 'PSNL Weight Chart',
                backgroundColor: {fill:'none'}
            };

            var data2 = google.visualization.arrayToDataTable(<% =jsostring2%>);
            var options2 = {
                title: 'PSNL Sleep Chart',
                backgroundColor: {fill:'none'}
            };

            var chartA = new google.visualization.LineChart(document.getElementById('chart_div'));
            chartA.draw(data1, options1);

            var chartB = new google.visualization.ColumnChart(document.getElementById('chart_div2'));
            chartB.draw(data2, options2);

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

       </script>
4

1 回答 1

0

我想答案是非常基本的。我不是java人。我搜索并考虑了一下。我在另一个网站上找到的答案是:

   <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

        function drawCharts() {
            var data1 = google.visualization.arrayToDataTable(<% = jsostring%>);
            var options1 = {
                title: 'PSNL Weight Chart',
                backgroundColor: {fill:'none'}
            };

            var data2 = google.visualization.arrayToDataTable(<% = jsostring2%>);
            var options2 = {
                title: 'PSNL Sleep Chart',
                backgroundColor: {fill:'none'}
            };

            var chartA = new google.visualization.LineChart(document.getElementById('chart_div'));
            document.getElementById('chart_div').style.display = 'block';
            document.getElementById('chart_div2').style.display = 'none';
            chartA.draw(data1, options1);

            var chartB = new google.visualization.ColumnChart(document.getElementById('chart_div2'));
            document.getElementById('chart_div2').style.display = 'block';
            document.getElementById('chart_div').style.display = 'none';
            chartB.draw(data2, options2);
        }
        google.setOnLoadCallback(drawCharts);
        google.load("visualization", "1", { packages: ["corechart"] });

</script>

随着 jquery 滚动。它会在滚动到视图之前打开第一个 Div_Chart 并关闭另一个。

于 2013-07-30T13:59:17.830 回答