u010628509
皇上-臣妾做不到啊
采纳率33.3%
2015-01-24 03:14

js中Ajax返回的值怎么当函数返回值供别的函数调用?

已采纳

图片说明
图片说明
如上图代码 我调用时返回的是undefined

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • showbo GoCityPass新加坡曼谷通票 6年前

    改为同步,而且你的回调里面返回值没用,并不是你的getTotalIntegral的返回值,还有以后代码,不要发截图。看桌就烦

     function getTotalIntegral(){
    //...原来的代码
    var rst=false;
    $.ajax({
    async:false,/////////////同步
    success:function(data){
    if(data.state==1)rst=data.integral
    }
    ///其他配置
    })
    
    return rst;//////
    }
    
    点赞 2 评论 复制链接分享
  • save4me save4me 6年前

    你可以把别的函数最为参数传给getTotalIntegral,比如

     function getTotalIntegral(alertAjax){
        //...原来的代码
        $.ajax({
            //...原来的代码       
            success:function(data){
                if(data.state==1){
                    alertAjax(data.integral);
                }
            }
        })
    }
    
    function alertAjax(data){
        alert(data);
    }
    
    点赞 1 评论 复制链接分享
  • u010628509 皇上-臣妾做不到啊 6年前

    原来关键在于我默认的是异步所以不行。

    点赞 评论 复制链接分享
  • save4me save4me 6年前

    如果你不想定义一个函数,可以直接使用匿名函数,如

     function getTotalIntegral(alertAjax){
        //...原来的代码
        $.ajax({
            //...原来的代码       
            success:function(data){
                if(data.state==1){
                    alertAjax(data.integral);
                }
            }
        })
    }
    
    $(function(){
        $('#gameRule').hide();
        getTotalIntegral(function(data){alert(data)});
    });
    
    点赞 评论 复制链接分享
  • oyljerry oyljerry 6年前

    你要保存到变量中,然后在外面Uu 一层返回。注意异步的时间点

    点赞 评论 复制链接分享

相关推荐