0

DygraphGVizChartの列の表示を変更しようとしています。

これは機能します:

function drawChart() {
  data = getData();
  window.chart1 = new Dygraph.GVizChart(
       document.getElementById('dygraphs')).draw(data, {
    });
  }

また、これは機能します:

function drawChart() {
  data = getData();
  window.chart1 = new Dygraph.GVizChart(
       document.getElementById('dygraphs')).draw(data, {
            visibility: [false, true, true, true]
    });
  }

しかし、内部drawChartでは、そのコードの後に​​、次の行を追加すると、

function drawChart() {
  data = getData();
  window.chart1 = new Dygraph.GVizChart(
       document.getElementById('dygraphs')).draw(data, {
    });
    window.chart1.setVisibility(0, true);
    window.chart1.setVisibility(1, false);
  }

エラーが発生します:

Uncaught TypeError:undefinedのメソッド'setVisibility'を呼び出すことはできません。drawChart

この質問を読んだ後chart1、実行時に準備ができていないのではないかと思いました。だから私はこの関数を追加しました:

    function showChange() {
        alert('show chart1:' + window.chart1);
        window.chart1.setVisibility(3, false);
    }
   
  <a href="#" onclick='showChange();return false;'>showChange</a>

しかし、showChangeリンクをクリックすると、同じエラーが発生します。

Uncaught TypeError:未定義のメソッド'setVisibility'を呼び出すことができません

そしてアラートウィンドウは言う:

チャート1を表示:未定義

4

1 に答える 1

2

new Dygraph.GVizChart()オブジェクトを返します。.draw()ではない。

次のようなものが必要です。

window.chart1 = new Dygraph.GVizChart(document.getElementById('dygraphs'));
window.chart1.draw(data, {});

また、dygraphs GViz ラッパーにはsetVisibility()メソッドがないため、問題が発生することになります。コードを機能させるには、基になる Dygraph オブジェクトを取得する必要があります。

function showChange() {
    alert('show chart1:' + window.chart1);
    window.chart1.date_graph.setVisibility(3, false);
}
于 2013-03-08T00:19:48.290 に答える