0

私はjqPlotを使用してwebAppのいくつかの点をプロットしているので、これを試しています:

var plot10 = $.jqplot ('heightChartDiv', [[3,7,9,1,5,3,8,2,5]]);

それはうまくいきます、私はこの正確なチャートをここに持っています

しかし、私がそれを取り出すとき、次のように値を与えます:

$(document).ready(function(){
var serie1 = [[3,7,9,1,5,3,8,2,5]];
}

function doGraph(){
 var plot10 = $.jqplot ('heightChartDiv', serie1);
}

うまくいきません。変数を間違って宣言していますか? 助けてください!

〜マイ

4

1 に答える 1

1

変数のスコープはすべてオフです。変数には、イベントserie1で定義された無名関数へのローカル スコープがあります。ここここ$(document).readyで JavaScript スコープを読んでください。

おそらく次のようなものです:

// the document ready will fire when the page is finished rendering
// inline javascript as you've done with your doGraph will fire as the page renders
$(document).ready(function(){

  // first define graph function
  // make the series an argument to the function
  doGraph = function(someSeries){
    var plot10 = $.jqplot ('heightChartDiv', someSeries);
  }

  // now call the function with the variable
  var serie1 = [[3,7,9,1,5,3,8,2,5]];
  doGraph(serie1);

}

コメントに応じて編集

以下の例を参照してください。

$(document).ready(function(){

  var a = 1;

  someFunc = function(){
    var b = 2;
    alert(a);                   
  }

  someFunc();  // this works
  alert(b);  // this produces an error

});​

ここで、変数 a は関数 someFunc に対してグローバルと見なされます。ただし、someFunc で宣言された変数は、その外部では保持されません。

于 2012-07-11T00:25:12.870 に答える