2 回答
TA贡献1887条经验 获得超5个赞
这个涉及到js的异步执行了,程序本身是同步执行的,到了getJSON这里的时候,这个函数是异步的,而 load_val这个函数是同步的,你需要这样来异步返回这个值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function load_val(callback){//定义一个回调函数 $.getJSON('test.php' , function(dat){ callback(data);//将返回结果当作参数返回 }); }
load_val(function(data){ alert(data);//这里可以得到值 });
//否则的话你需要这样用同步ajax来实现了
function load_val2(){ var result; $.ajax({ dataType:'json', url : 'test.php', async:false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待 //数据加载完成后才继续执行 success : function(data){ result = data; } }); return result; }
var data = load_val();//这里可以直接拿到数据 |
TA贡献1828条经验 获得超4个赞
1 2 3 4 5 6 7 8 9 10 11 12 13 | function load_val(callback) { $.getJSON("test.php",function(data){ callback(data); }); }) }
function test() { load_val(function(data) { alert(data); }); } |
- 2 回答
- 0 关注
- 463 浏览
添加回答
举报