首页 新闻 会员 周边 捐助

函数多层嵌套,如何在外面使用最里面函数里的数组?

0
悬赏园豆:10 [已关闭问题] 关闭于 2016-11-11 14:00
function showTree(){
    $.ajax({
        //url: service_url + "getEqupmentMenuitem.php?type="+type,
        url: "data_engine_json/getEqupmentMenuitem.json",
        success: function(menuArray) {
            $.ajax({
                //url: service_url + "getEqupmentDetail.php?equpid="+equpid,
                url: "data_engine_json/getEqupmentDetail.json",
                success: function (json_result) {
                    var test_list = [],test_units=[];
                    //var json_result = $.parseJSON(results);
                    // 加载折线图图例并构造一个数组   折线颜色的说明
                    if (marker_content[json_result.pam] != "Not used") {
                        test_list.push(marker_content[json_result.pam]);
                        test_units.push(marker_unit[json_result.pam]);
                    }
                    if (marker_content[json_result.pbm] != "Not used") {
                        test_list.push(marker_content[json_result.pbm]);
                        test_units.push(marker_unit[json_result.pbm]);
                    }
                    if (marker_content[json_result.pcm] != "Not used") {
                        test_list.push(marker_content[json_result.pcm]);
                        test_units.push(marker_unit[json_result.pcm]);
                    }
                    if (marker_content[json_result.pdm] != "Not used") {
                        test_list.push(marker_content[json_result.pdm]);
                        test_units.push(marker_unit[json_result.pdm]);
                    }
                    if (marker_content[json_result.pem] != "Not used") {
                        test_list.push(marker_content[json_result.pem]);
                        test_units.push(marker_unit[json_result.pem]);
                    }
                    if (marker_content[json_result.pfm] != "Not used") {
                        test_list.push(marker_content[json_result.pfm]);
                        test_units.push(marker_unit[json_result.pfm]);
                    }
                    if (marker_content[json_result.pgm] != "Not used") {
                        test_list.push(marker_content[json_result.pgm]);
                        test_units.push(marker_unit[json_result.pgm]);
                    }
                    if (marker_content[json_result.phm] != "Not used") {
                        test_list.push(marker_content[json_result.phm]);
                        test_units.push(marker_unit[json_result.phm]);
                    }
                    if (marker_content[json_result.pim] != "Not used") {
                        test_list.push(marker_content[json_result.pim]);
                        test_units.push(marker_unit[json_result.pim]);
                    }
                    if (marker_content[json_result.pjm] != "Not used") {
                        test_list.push(marker_content[json_result.pjm]);
                        test_units.push(marker_unit[json_result.pjm]);
                    }
                    if (marker_content[json_result.pkm] != "Not used") {
                        test_list.push(marker_content[json_result.pkm]);
                        test_units.push(marker_unit[json_result.pkm]);
                    }
                    if (marker_content[json_result.plm] != "Not used") {
                        test_list.push(marker_content[json_result.plm]);
                        test_units.push(marker_unit[json_result.plm]);
                    }
                    test_list.push("Battery");
                    test_units.push("%");
                    first_equpid = menuArray[0].nodes[0].nodes[0].equpid;
                    $("#equpname").html("设备:" + first_equpid);
                    var tree_obj = menuArray[0].nodes[0].nodes[0];
                    for (var i = 0, array = []; i < test_list.length; i++) {
                        array.push({"text": test_list[i],"href":"javascript:"+test_list[i].replace(" ","")+"()"});
                    }
                    menuArray[0].nodes[0].state={expanded: true};
                    tree_obj.nodes = array;
                    $('#menu').treeview({
                        data: menuArray,
                        enableLinks: true
                    });
                }
            })
        }
    })
}

怎么在外面可以使用     test_units和test_list数组???

米娜-火箭的主页 米娜-火箭 | 初学一级 | 园豆:180
提问于:2016-06-06 10:07
< >
分享
所有回答(2)
0

定义为全局

林中草 | 园豆:224 (菜鸟二级) | 2016-06-06 11:45

试过了,不行,输出的是[]

支持(0) 反对(0) 米娜-火箭 | 园豆:180 (初学一级) | 2016-06-06 11:52
0

可以写一个callback,在最后将test_units和test_list传给callback

function showTree(callback){

$.ajax({

...

success:function(...){

...

var test_list = [],test_units=[];

...

callback(test_list,test_units);

...

}

...

})

...

}

长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-06 11:47

可以给个简单的例子不?不会,谢谢

支持(0) 反对(0) 米娜-火箭 | 园豆:180 (初学一级) | 2016-06-06 11:50

@米娜-火箭: showTree(function(test_list,test_units){

alert(test_list.length+":"+test_units.length)

})

支持(0) 反对(0) 长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-06 11:53

@长蘑菇星人: 还是看不懂,callback在showtree里不就是参数吗?函数里test_units和test_list又是怎么传给callback,真的看不懂

支持(0) 反对(0) 米娜-火箭 | 园豆:180 (初学一级) | 2016-06-06 12:00

@米娜-火箭: 23333没人说参数不能是函数,不是么。

支持(0) 反对(0) 长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-06 12:01

@长蘑菇星人: 具体怎么写?我试了半天都报错

支持(0) 反对(0) 米娜-火箭 | 园豆:180 (初学一级) | 2016-06-06 12:16

@米娜-火箭: 仔细看了下,居然能写出这么萌的代码。

给showTree 加个参数,没问题吧。参数名叫callback

tree_obj.nodes = array;这句代码下面写callback(test_list ,test_units);

调用showTree的地方写showTree(function(test_list ,test_units){

//你的代码

})

再不行,就先去睡一觉。醒了再看。

 

支持(0) 反对(0) 长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-06 12:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册