以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- easyui模板菜单求教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133889)
|
-- 作者:淡月斜阳
-- 发布时间:2019/4/23 9:40:00
-- easyui模板菜单求教
原菜单menu.js中代码如下:以下内容为程序代码:
1 var SystemMenu=[{"title":"系统管理","icon":"","isCurrent":true,"menu":[{"title":"管理1","icon":"","isCurrent":true,"children":[{"title":"首页","href":"workbench.html","isCurrent":true}]}]}]; 我用动态生态: 以下内容为程序代码:
1 var jsonObj; 2 var SystemMenu=[]; 3 $.get("getmenu.js", function(Data){ 4 jsonObj =$.parseJSON(Data); 5 var josnstr= JSON.stringify(jsonObj); 6 console.log(josnstr); 7 for(var i =0 ;i < jsonObj.length;i++){ 8 SystemMenu[i] = jsonObj[i]; 9 } 10 console.log(typeof(SystemMenu)); 11 12 }); 13 调试结果: 以下内容为程序代码:
1 [{"title":"系统管理","icon":"","isCurrent":true,"menu":[{"title":"管理1","icon":"","isCurrent":true,"children":[{"title":"首页","href":"workbench.html","isCurrent":true}]}]}] 2 menu.js:10 object 生成的josn格式正确,直接把生成的格式放改成 var systemmenu可以执行。 生成菜单的代码: 以下内容为程序代码:
1 _createTopMenu: function(){ 2 var menuStr = \'\', 3 currentIndex = 0; 4 for(var i = 0, len = SystemMenu.length; i < len; i++) { 5 menuStr += \'<li class="pf-nav-item project" data-sort="\'+ i +\'" data-menu="system_menu_" + i>\'+ 6 \'<a href="javascript:;">\'+ 7 \'<span class="iconfont">\'+ SystemMenu[i].icon +\'</span>\'+ 8 \'<span class="pf-nav-title">\'+ SystemMenu[i].title +\'</span>\'+ 9 \'</a>\'+ 10 \'</li>\'; 11 // 渲染当前 12 if (SystemMenu[i].isCurrent){ 13 currentIndex = i; 14 this._createSiderMenu(SystemMenu[i], i); 15 } 16 } 17 18 $(\'.pf-nav\').html(menuStr); 19 $(\'.pf-nav-item\').eq(currentIndex).addClass(\'current\'); 20 }, 正常和我写的错误的状态如图: 此主题相关图片如下:qq图片20190423093648.png
帮忙看看,怎么回事。 此主题相关图片如下:qq图片20190423093609.png
|
-- 作者:有点甜
-- 发布时间:2019/4/23 11:01:00
--
返回的 Data 内容是什么?为什么不直接赋值给 SystemMenu ?
|
-- 作者:淡月斜阳
-- 发布时间:2019/4/23 11:08:00
--
Select Case e.Path Case "TableData" e.AsyncExecute=True Functions.AsyncExecute("GetData",e) Case "getmenu" MessageBox.Show("c") Case "getmenu.js" Dim jb As new JArray jb.Add(new JObject) Dim jo As new JObject Dim ja As new JArray Dim ja1 As new JArray jb(0)("title")="系统管理" jb(0)("icon")="" jb(0)("isCurrent")=True jb(0)("menu")=ja ja.Add(new JObject) ja(0)("title")="管理1" ja(0)("icon")="" ja(0)("isCurrent")=True ja(0)("children")=ja1 ja1.Add(new JObject) ja1(0)("title")="首页" ja1(0)("href")="workbench.html" ja1(0)("isCurrent")=True e.WriteString(CompressJson(jb)) End Select 生成的josn是这个: [{"title":"系统管理","icon":"","isCurrent":true,"menu":[{"title":"管理1","icon":"","isCurrent":true,"children":[{"title":"首页","href":"workbench.html","isCurrent":true}]}]}];
[此贴子已经被作者于2019/4/23 11:09:22编辑过]
|
-- 作者:有点甜
-- 发布时间:2019/4/23 11:27:00
--
直接赋值过去,如
SystemMenu = $.parseJSON(Data);
|
-- 作者:淡月斜阳
-- 发布时间:2019/4/23 11:35:00
--
不行啊,试过了以下内容为程序代码:
1 var SystemMenu=[]; 2 $.get("getmenu.js", function(Data){ 3 SystemMenu=$.parseJSON(Data); 4 console.log(typeof(SystemMenu)); 5 });
|
-- 作者:有点甜
-- 发布时间:2019/4/23 11:45:00
--
具体实例发上来测试
|
-- 作者:淡月斜阳
-- 发布时间:2019/4/23 12:06:00
--
这是例子
[此贴子已经被作者于2019/4/23 12:06:41编辑过]
|
-- 作者:有点甜
-- 发布时间:2019/4/23 12:09:00
--
请正确上传实例。
|
-- 作者:淡月斜阳
-- 发布时间:2019/4/23 12:15:00
--
上传不上啊,怎么回事
链接:https://pan.baidu.com/s/1sd4614CRObAqCjbUwEr5og 提取码:dgp7 放到百度网盘了
[此贴子已经被作者于2019/4/23 12:16:34编辑过]
|
-- 作者:有点甜
-- 发布时间:2019/4/23 12:53:00
--
先执行了 main.js 的代码,才会回来执行你 $.get的代码的,也就是先生成了菜单,你才返回json数据。
改成,如
var jsonObj; var SystemMenu=[]; $.get("getmenu1.js", function(Data){ alert(Data); SystemMenu=$.parseJSON(Data);
\'拷贝你main.js的代码放在这里执行
});
|