2

グラフは描画されず、コンソールはこれをスローします:Uncaught Error: Invalid dimensions for plot, width = 1350, height = 0エラーです。

JSFiddle でエラーを再現しようとしましたが、できませんでしたが、次のようになります

このエラーに関する注意事項:

  • 最初の x ページの読み込みで、グラフが描画され、そのエラーが発生した後に停止することがあります。

  • 完全なエラーは次のとおりです。

    Uncaught Error: Invalid dimensions for plot, width = 1350, height = 0 jquery.flot.js:119

    Canvas.resize jquery.flot.js:119

    Canvas jquery.flot.js:98

    setupCanvases jquery.flot.js:1261

    Plot jquery.flot.js:674

    $.plot jquery.flot.js:3039

    visc_graph active-scripts.js:45

    (anonymous function) active-scripts.js:346

    k jquery.min.js:2

    l.fireWith jquery.min.js:2

    p.extend.ready jquery.min.js:2

    D jquery.min.js:2

そして、ここから jquery.flot ソースにスローされるようです:

    Canvas.prototype.resize = function(width, height) {

        if (width <= 0 || height <= 0) {
            throw new Error("Invalid dimensions for plot, width = " + width + ", height = " + height);
Uncaught Error: Invalid dimensions for plot, width = 1350, height = 0
        }
  • 編集: 詳細: 上記の JSFiddle とは異なり、その関数を使用して複数のグラフをプロットしています -このplaceholderようなものですが、 divごとに個別の関数を作成した場合、これは発生しませんでした。

  • コンソールからグラフ機能を呼び出すと、つまりvisc_graph(2,3,'#placeholder');うまくいくようです:(

これの実際の原因が何であるかを診断する方法がないため、私はしばらくこれに苦労してきました。これを解決する方法についてのご意見をいただければ幸いです。

アップデート:

4

2 に答える 2

5

このエラーは、Flot がプレースホルダー div のサイズを特定できない場合に発生します。これはいくつかの方法で発生する可能性がありますが、一般的には$.plot、プレースホルダーが DOM にある前に呼び出したことを意味します。

@Mark が示唆したよう$.plotに、ドキュメントの準備が整う前に呼び出すと、これが発生する可能性がありますが、他の方法でも発生する可能性があります。プロットは、タブ、アコーディオン、ダイアログ ボックス、またはページの読み込み時にコンテンツが非表示になるその他のウィジェットに保持されていますか? もしそうなら、コンテンツ div を DOM から除外することで実装されている可能性があります。つまり、プロット プレースホルダーも DOM の外にあり、測定できません。

このエラーが発生する理由は他にありません。問題が解決しない場合は、コード (特に DOM 部分) を追加して、何が起こっているのかを理解できるようにする必要があります。

于 2013-07-21T14:00:46.133 に答える