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 回答