这个涉及到 js 的异步执行了, 程序本身是同步执行的, 到了 getJSON 这里的时候, 这个函数是异步的, 而 load_val 这个函数是同步的, 你需要这样来异步返回这个值
- 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(); // 这里可以直接拿到数据
来源: http://www.bubuko.com/infodetail-2550450.html