在变量上存储jquery函数

时间:2012-08-15 02:22:04

标签: javascript jquery

我在.js文件中有这段代码:

$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {     
  if (data.address.country='spain') {
    var a="http://www.link1.com";
  } else { 
    var a="http://www.link2.com";
  }
  return a; 
});

var fan_page_url = data();

如何在var fan_page_url中存储var a?

非常感谢。

3 个答案:

答案 0 :(得分:2)

尝试删除a并直接指定链接。

var fan_page_url;
$.getJSON('http://api.wipmania.com/jsonp?callback=?', function(data) {
    if (data.address.country = 'spain') {
        fan_page_url = "http://www.link1.com";
    } else {
        fan_page_url = "http://www.link2.com";
    }
});

答案 1 :(得分:0)

您有两种选择:直接分配外部变量,建议使用软件仓库,或将$.getJSON返回值视为Deferred

$.when($.getJSON(...)).done(function(returnValue) {
    fan_page_url = returnValue;
});

后者非常有用,如果您不想对存储结果的变量进行硬编码(虽然一般情况下它不是问题,而前一个选项更容易/更清晰)。

答案 2 :(得分:0)

这是一个老问题,我只是偶然发现(寻找稍微不同的东西),但由于答案似乎没有敲响头,我以为我会增加2美分:如果你(op)成功了一个硬编码并在config.js中手动设置的变量,你可以从start.js中获取,为什么不简单:

  • 保持变量声明,就像在全局范围内一样。
  • 为其指定默认值或空值或空值:

    var fan_page_url = null; // or
    var fan_page_url = ''; // or
    var fan_page_url = 'http://url_default'; // etc...
    
  • 然后更新json函数中的全局变量:

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function(data) {
        if (data.address.country='spain') {
            fan_page_url = "http://url1";
        } else { 
            fan_page_url = "http://url2";
        }
    });
    
  • 在你的start.js页面中,你总是可以检查变量是否被设置,或者是否仍然带有它的默认值,并相应地采取行动......

如果它过去常常使用手动声明的变量,它可能会在这里工作,就像你在结构上没有改变一样,只会在json响应之后更新变量。

为子孙后代发布的答案,将来可能对某人有帮助。