【问题标题】:Highstock chart doesn't show after it has been clearedHighstock 图表在清除后不显示
【发布时间】:2012-08-06 20:20:12
【问题描述】:

我正在尝试制作一个简单的页面,在页面加载时会有一个 Highstock 图表和两个按钮,一个用于删除图表,另一个用于重新加载它。但是,一旦单击第一个按钮以清除内部图表的容器,随后单击第二个按钮不会重新加载图表。我怎样才能重新加载它?小提琴在http://jsfiddle.net/Cupidvogel/DCkmN/

【问题讨论】:

    标签: javascript jquery highcharts highstock


    【解决方案1】:

    当您出于某种原因清除图表选项数组时,您将丢失它。你可以像this一样在函数本身中创建它。

    或者更好的是把它移到它自己的函数中,这样你就可以像this一样重用它。

    【讨论】:

    • 是的,这似乎可行,但为什么图表选项哈希在清除时会丢失?
    • 效果很好,请解释为什么我清除图表容器时解决方案中的选项哈希被清除了?
    • 如果您调试,您会看到 chartingOptions 没有被清除。它的系列属性在构造函数调用后立即变为空。对我来说似乎是一个错误。或者可能是为了避免克隆系列选项中包含的大量数据,而只是使用相同的对象来绘制图表。
    【解决方案2】:

    如果您进行调试,您会看到 chartingOptions 没有被清除。它的系列属性在构造函数调用后立即变为空。对我来说似乎是一个错误。或者可能是为了避免克隆系列选项中包含的大量数据,而只是使用相同的对象来绘制图表。

    源码是这么写的,

     userOptions.series = null; 
    

    userOptions.series 属性在被复制后被故意设置为 null 以进行构造。

        /**
        * The chart class
        * @param {Object} options
        * @param {Function} callback Function to run when the chart has loaded
        */
        function Chart(userOptions, callback) {
        // Handle regular options
        var options,
        seriesOptions = userOptions.series; // skip merging data points to increase performance
        userOptions.series = null;  
    

    【讨论】:

      猜你喜欢
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2013-03-23
      • 2021-04-07
      相关资源
      最近更新 更多