jquery动态的调取菜单

小米粥 发布于 2011/10/11 17:50
阅读 2K+
收藏 1
var _menus = {"menus":[
{"menuid":"1","icon":"icon-sys","menuname":"控件使用",
"menus":[
{"menuname":"菜单管理","icon":"icon-nav","url":"demo.html"},
{"menuname":"添加用户","icon":"icon-add","url":"demo.html"},
{"menuname":"用户管理","icon":"icon-users","url":"demo.html"},
{"menuname":"角色管理","icon":"icon-role","url":"demo.html"},
{"menuname":"权限设置","icon":"icon-set","url":"demo.html"},
{"menuname":"系统日志","icon":"icon-log","url":"demo.html"}
]},
{"menuid":"8","icon":"icon-sys","menuname":"项目管理",
"menus":[
{"menuname":"项目","icon":"icon-nav","url":"demo.html"}
]}]};

上面是静太调用js

要换成下面的

 var _menus = getMenus();
        function getMenus(){
         var menu="";
         $.ajax({
          type:'post',
          url:'/xxx/menus/getMenus',
          error:function(){$.messager.alert('基本权限管理系统','目前网络繁忙,请稍候在试!','error');},
         });
         return menu;
        }

就出问题了,该如何来搞?

加载中
0
fmxzhou
fmxzhou

因为ajax是异步的,所以没等ajax执行完,就返回数据了,自然为空。

如果数据量小的话,可以考虑在 在ajax中加个参数 async:false,让ajax变成同步!!

http://api.jquery.com/jQuery.ajax/

0
小米粥
小米粥

引用来自“天涯咫尺”的答案

因为ajax是异步的,所以没等ajax执行完,就返回数据了,自然为空。

如果数据量小的话,可以考虑在 在ajax中加个参数 async:false,让ajax变成同步!!

http://api.jquery.com/jQuery.ajax/

加上了async:false 也不行啊,后台能取到数据,估计就是页面显示的时候有点问题

0
sxgkwei
sxgkwei
大姐, menu变量在哪儿重新赋过值啊?貌似如你的意思,最起码在返回正确时: success:function(data){ menu=data.XX }有这么一句吧?
0
fmxzhou
fmxzhou

引用来自“sxgkwei”的答案

大姐, menu变量在哪儿重新赋过值啊?貌似如你的意思,最起码在返回正确时: success:function(data){ menu=data.XX }有这么一句吧?
对头,没看这么仔细了
0
sxgkwei
sxgkwei

引用来自“小米粥”的答案

我的个天。“ var _menus = getMenus(); 我想应该是这样赋值有点问题,如何弄呢?”你这样赋值没有任何问题。我说的你赋值有问题,是指你方法中的 var menu= "" ;这个参数声明,你在此方法中,从来没有改过这个参数声明的值"",你最后却把它返回回去了,你说,你最终 var _menus不为"",还能为啥?
0
小米粥
小米粥
谢谢大家的支持和帮助,问题我已经解决
返回顶部
顶部