2011-12-21 30 views
9

我已经分离jqPlot结束的情况下,导致它“撞车”(无限期停止)我的整个页面的JavaScript。这发生在我一个折线图中使用DateAxisRenderer,象这样一个值:为什么显示单个数据点时jqPlot的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。

+1

刚刚发现了同样的问题... – Martin 2012-01-13 22:17:39

+1

有一个非官方的修复这个漏洞,以dateAxisRenderer.js在https://bitbucket.org/tomasc/jqplot/changeset/42d2445cdd45,但您必须克隆回购站或手动复制更改。 – Kryptic 2012-02-10 00:28:37

回答

6

DateAxisRenderer的代码瞥见显示插件尝试来计算最小和最大值来确定蜱。这只是表明作者暗示一个系列由至少两个数据点组成。这并没有在文档中说明,也没有在代码中检查这是为什么插件“崩溃”。

bug已经申请(4天前的2012年1月21日)的jqplot BUG跟踪列表。

0

我也不得不在今天面对这个问题,让我感到震惊的相同代码的jsfiddle,我使用的脚本从Bitbucket工作。

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

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

我创造了一个demo at jsfiddle