为什么jqPlot的DateAxisRenderer在显示单个数据点时会崩溃?

时间:2011-12-21 10:40:01

标签: jquery jqplot

我已经用jqPlot隔离了一个结束案例,导致它“崩溃”(无限期地停止)我的整个页面的javascript。当我使用带有单个值的折线图中的DateAxisRenderer时会发生这种情况:

(function() {
  $(function() {
    var data, now, plot1;
    now = new Date;
    // single data point in the series:
    data = [[now, 1]];
    return plot1 = $.jqplot("plotTarget", [data], {
      axes: {
        xaxis: {
          // if I remove this renderer, the "crash" does not happen:
          renderer: $.jqplot.DateAxisRenderer
        }
      }
    });
  });
}).call(this);

为什么会这样?这是jqPlot中的错误还是我做错了什么?

还注意到:如果我在系列中添加更多具有相同日期的值,则会出现同样的问题。如果我添加更多具有不同日期的值,问题就会消失。

我正在使用jQuery v1.6.4,jqPlot v1.0.0b2_r1012并在Firefox 8.0.1上进行渲染。

2 个答案:

答案 0 :(得分:6)

瞥见DateAxisRenderer的代码表明插件试图计算最小值和最大值以确定滴答。这只是表明作者暗示一个系列至少包含两个数据点。这在文档中没有说明,或者在代码中检查了插件“崩溃”的原因。

在jqplot错误跟踪列表中,bug已经提交(4天前,2012年1月21日)。

答案 1 :(得分:1)

今天我也遇到过这个问题,让我感到惊讶的是,我使用jsfiddle编写的代码与Bitbucket中使用的脚本相同。

我正在使用jqplot和ASP.NET MVC并使用nuget扩展下载了jqplot脚本,结果发现扩展已经下载了导致问题的旧版jqplot。

因此,只需将旧的DateAxisRender.js更改为here中新更新的版本,即可解决我的问题,您也可以从this page下载最新版本。

我创建了demo at jsfiddle