0

在对为什么我的图表没有加载进行数小时的故障排除后,我发现在一页中同时使用 jquery.ba-resize 和 jquery.flot.resize 以及 highstock 会导致此错误:

 uncaught typeerror: cannot read property 'width' of undefined

目前我正在尝试将 highstock 示例之一集成到我的页面中,该页面可以在 highstock 演示中找到。

关于如何解决这个问题的任何想法?谢谢

编辑2 : jsfiddle:http: //jsfiddle.net/CFPqG/

实际代码:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highstock Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">
$(function() {
    var seriesOptions = [],
        yAxisOptions = [],
        seriesCounter = 0,
        names = ['MSFT', 'AAPL', 'GOOG'],
        colors = Highcharts.getOptions().colors;

    $.each(names, function(i, name) {

        $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename='+ name.toLowerCase() +'-c.json&callback=?',   function(data) {

            seriesOptions[i] = {
                name: name,
                data: data
            };

            // As we're loading the data asynchronously, we don't know what order it will arrive. So
            // we keep a counter and create the chart when all the data is loaded.
            seriesCounter++;

            if (seriesCounter == names.length) {
                createChart();
            }
        });
    });



    // create the chart when all data is loaded
    function createChart() {

        $('#container').highcharts('StockChart', {
            lang: {
                rangeSelectorZoom: ''
            },
            chart: {
                type: 'area'
            },
            legend: {
                enabled: true,
                borderRadius: 0,
                layout: 'horizontal',
                backgroundColor: null,
                align: 'right',
                verticalAlign: 'top',
                floating: true,
                borderWidth: 0,
                y: 20
            },
            colors: [
               '#71c49a', 
               '#444444', 
               '#777777', 
               '#910000', 
               '#1aadce', 
               '#492970',
               '#f28f43', 
               '#77a1e5', 
               '#c42525', 
               '#a6c96a'
            ],
            exporting: {
            enabled: false
            },
            credits: {
                enabled: false
            },
            xAxis: {
                lineColor: '#d8efe3',
                labels: {
                    style: {
                    color: '#71c49a'
                    },
                }
            },
            yAxis: {
                lineColor: '#d8efe3',
                gridLineColor: '#d8efe3',
                labels: {
                    style: {
                    color: '#71c49a'
                    },
                    formatter: function() {
                        return (this.value > 0 ? '+' : '') + this.value + '%';
                    }
                },
                plotLines: [{
                    value: 0,
                    width: 2,
                    color: '#71c49a'
                }]
            },
            scrollbar: {
                enabled: false
            },
            rangeSelector: {
                selected: 1,
                inputEnabled: false,
                buttonSpacing: 5,
                labelStyle: {
                    color: '#71c49a',
                    fontWeight: 'bold'
                },
            },
            navigator: {
                handles: {
                backgroundColor: '#d8efe3',
                borderColor: '#71c49a'
                },
                series: {
                color: '#71c49a'    
            }
            },
            plotOptions: {
                area: {
                    lineWidth: 3,
                    shadow: true,
                    marker: {
                        enabled: true,
                        fillColor: '#FFFFFF',
                        lineWidth: 2,
                        lineColor: null,
                        symbol: 'circle',
                        radius: 3,
                        states: {
                            hover: {
                                enabled: true
                            }
                        }
                    }
                },
                series: {
                    compare: 'percent',
                    fillOpacity: 0.7
                }
            },

            tooltip: {
                pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>',
                valueDecimals: 2
            },

            series: seriesOptions
        });
    }

});
        </script>
    </head>
    <body>
<script src="../../js/highstock.js"></script>
<script src="../../js/modules/exporting.js"></script>

<div id="container" style="height: 400px; min-width: 600px"></div>
<script src="your-path/jquery.ba-resize.js"></script>

  <script src="your-path/jquery.flot.resize.js" type="text/javascript"></script>
    </body>
</html>
4

1 回答 1

1

看起来'resize'库覆盖了一些jQuery函数,它不再以同样的方式工作了..?在这种情况下,我建议使用 Highcharts 独立版本,请参阅:http: //jsfiddle.net/CFPqG/1/

 <script type="text/javascript" src="https://rawgithub.com/cowboy/jquery-resize/v1.1/jquery.ba-resize.js"></script>
于 2013-09-19T09:10:27.250 回答