这个涉及到js的异步执行了,程序本身是同步执行的,到了getJSON这里的时候,这个函数是异步的,而 load_val这个函数是同步的,你需要这样来异步返回这个值
1 function load_val(callback){//定义一个回调函数 2 ????$.getJSON(‘test.php‘ , function(dat){ 3 ????????callback(data);//将返回结果当作参数返回 4 ????}); 5 } 6 ??7 load_val(function(data){ 8 ????alert(data);//这里可以得到值 9 });10 ?11 //否则的话你需要这样用同步ajax来实现了12 ?13 function load_val2(){14 ????var result;15 ????$.ajax({16 ????????dataType:‘json‘,17 ????????url : ‘test.php‘,18 ????????async:false,//这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待19 ????????????????????//数据加载完成后才继续执行20 ????????success : function(data){21 ????????????result = data;22 ????????}23 ????});24 ????return result;25 }26 ?27 var data = load_val();//这里可以直接拿到数据
ajax 把返回结果作为参数传递
原文地址:https://www.cnblogs.com/louby/p/8719908.html