猿问

jquery 返回值的问题

<script type="text/javascript">
    $('#tab-1').click(function(){
        var data = Ajaxs("test.php");
        alert(data);
    });

    function Ajaxs($url,$urlType="get",$data=''){
        $.ajax({
            type: $urlType,
            url: $url,
            data:$data,
            beforeSend: function(){

            },
            success: function(data){
                alert(data);
                return data;
            },
            error: function(){
                alert('请求失败');
            }
        });
    }
</script>

为什么 success :alert(data)可以将ajax返回的结果打印出来,而return  data 会返回  undefined

spaces
浏览 1538回答 1
1回答

pardon110

success中的funtion(data)中的data是个类似形参的返回数据,alert方法是个全局方法,所以你用alert()可以打印出来。而使用return出现undefined,你可以简单理解为js每使用一个函数都会形成一个作用域。要想将内层的值return(返回)到最外层,很显然需要层层接力,即每一层将值return到上一层。直白点,就是你的Ajaxs()方法未返回data值,所以出现undefined.
随时随地看视频慕课网APP
我要回答