Javascript:如何制作这个变量。全局工作

标签 javascript jquery variables

我对这个变量有疑问,不想在函数之外工作,我只是不明白为什么!这是代码:

globalData = new Array();

 // 
 // Colors
 //
 if ( settings.category == 'colors' ) {
  $.getJSON(colorLoversURL, function(data) {
   for ( var i in data ) {
    var localData = data[i].hex;
    globalData.push(localData);
   }
  });
 }

 // 
 // Palettes
 //
 else if ( settings.category == 'palettes' ) {
  $.getJSON(colorLoversURL, function(data) {
   for ( var i in data ) {
    var localData = new Array();
    for ( var j in data[i].colors ) {
     localData.push(data[i].colors[j]);
    }
    globalData.push(localData);
   }
  });
 }

现在的问题是,globalData 仅将值保留在 getJSON 函数内和函数外,当我需要它时,它只是显示为空白(我在警报窗口中测试值)。我还尝试将“var”放在代码前面或从代码前面去掉。这里有什么问题吗?

最佳答案

您什么时候检查 globalData?

对 getJSON 的两次调用都使用回调来操作 globalData,因此在检查 globalData 之前可能尚未调用该函数。不要忘记您正在使用异步 javascript。

如果是这种情况,我建议使用函数链

 function useGlobalData() {
    alert(globalData); 
    //do other stuff
 }
 // 
 // Palettes
 //

  $.getJSON(colorLoversURL, function(data) {
   for ( var i in data ) {
    var localData = new Array();
    for ( var j in data[i].colors ) {
     localData.push(data[i].colors[j]);
    }
    globalData.push(localData);
    useGlobalData();
   }
  });

关于Javascript:如何制作这个变量。全局工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338198/

相关文章:

jquery - 选择所有链接

java - 使用数值方法进行计算时 float 不准确

python - 如何在python中设置全局const变量

javascript - AngularJs 在验证后将用户数据保存到 session 中

javascript - Node js 和 Redis 未定义的 JSON 属性

javascript - 如何将搜索添加到页脚中 DataTable 的某些单独列?

javascript - Jquery 在显示搜索结果后未检测到点击

javascript - 获取元素 id 并根据它执行 get 请求

variables - sed 增量号

javascript - Ajax beforesend 方法在某些情况下不起作用