DWZ横向导航实现动态左菜单树(基于zTree插件)
2015-09-18 17:12
627 查看
此篇文章是基于ztree实现,若是dwz与ztree未整合,请先按照《DWZ和zTree整合(实现版)》文章整合。
先上图片:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/d26fe88a0486c96ffcde937e3d9d4311.png)
顶部菜单异步加载:
Js代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/892745e9cae591d4c764220f907630c7.png)
//加载顶部菜单
$.post("topMenu!topMenu.action",{},function(result){
var json = eval('(' + result + ')');
var tm='<ul>';
$.each(json, function(i,item){
if(i==0){
tm+='<li class="selected"><a href="javascript:void(0)" onclick="changeMenu(this,'+item.id+',\''+item.name+'\')"><span>'+item.name+'</span></a></li>';
}else{
tm+='<li><a href="javascript:void(0)" onclick="changeMenu(this,'+item.id+',\''+item.name+'\')"><span>'+item.name+'</span></a></li>';
}
});
tm+="</ul>";
$("#navMenu").html(tm);
});
$("#navMenu").html(tm);
});
子菜单树加载:
Js代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/892745e9cae591d4c764220f907630c7.png)
var subMenuSetting = {
async: {
enable: true,//启用异步加载
url:"tree!asyncTree.action", //异步请求地址
dataType:"text",
autoParam:["id"] //需要传递的参数,为你在ztree中定义的参数名称
},
data:{ // 必须使用data
simpleData : {
enable : true,
idKey : "id", // id编号命名 默认
pIdKey : "pId", // 父id编号命名 默认
rootPId : -1 // 用于修正根节点父节点数据,即pIdKey 指定的属性值
}
},
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false,
expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast"
},
callback: {
onAsyncSuccess: onAsyncSuccess
}
};
function onAsyncSuccess(event, treeId, treeNode, msg) {
initUI($('#'+treeId));
}
function changeMenu(obj,id,name){
//设置点击横向菜单后横向菜单的样式
$('#navMenu ul li').each(function(idx){
$('#navMenu ul li').removeClass();
});
$(obj).parent().addClass("selected");
//加载树
$.post("topMenu!topSubTree.action",{id:id},function(result){
var json = eval('(' + result + ')');
$.fn.zTree.init($("#ztreedemo"), subMenuSetting, json);
initUI($('#ztreedemo'));
});
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/e5911cb70f745a2f43fd6d30bcafe6c9.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/9f8672db3e494012c0f6086d15ccbeb5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/ca8b7577978db11e788647c703d57080.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/f21ad4f657c10aaaca6127913b140c3d.png)
转自:http://njkf-hp.iteye.com/blog/1965218?utm_source=tuicool
先上图片:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/d26fe88a0486c96ffcde937e3d9d4311.png)
顶部菜单异步加载:
Js代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/892745e9cae591d4c764220f907630c7.png)
//加载顶部菜单
$.post("topMenu!topMenu.action",{},function(result){
var json = eval('(' + result + ')');
var tm='<ul>';
$.each(json, function(i,item){
if(i==0){
tm+='<li class="selected"><a href="javascript:void(0)" onclick="changeMenu(this,'+item.id+',\''+item.name+'\')"><span>'+item.name+'</span></a></li>';
}else{
tm+='<li><a href="javascript:void(0)" onclick="changeMenu(this,'+item.id+',\''+item.name+'\')"><span>'+item.name+'</span></a></li>';
}
});
tm+="</ul>";
$("#navMenu").html(tm);
});
$("#navMenu").html(tm);
});
子菜单树加载:
Js代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/892745e9cae591d4c764220f907630c7.png)
var subMenuSetting = {
async: {
enable: true,//启用异步加载
url:"tree!asyncTree.action", //异步请求地址
dataType:"text",
autoParam:["id"] //需要传递的参数,为你在ztree中定义的参数名称
},
data:{ // 必须使用data
simpleData : {
enable : true,
idKey : "id", // id编号命名 默认
pIdKey : "pId", // 父id编号命名 默认
rootPId : -1 // 用于修正根节点父节点数据,即pIdKey 指定的属性值
}
},
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false,
expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast"
},
callback: {
onAsyncSuccess: onAsyncSuccess
}
};
function onAsyncSuccess(event, treeId, treeNode, msg) {
initUI($('#'+treeId));
}
function changeMenu(obj,id,name){
//设置点击横向菜单后横向菜单的样式
$('#navMenu ul li').each(function(idx){
$('#navMenu ul li').removeClass();
});
$(obj).parent().addClass("selected");
//加载树
$.post("topMenu!topSubTree.action",{id:id},function(result){
var json = eval('(' + result + ')');
$.fn.zTree.init($("#ztreedemo"), subMenuSetting, json);
initUI($('#ztreedemo'));
});
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/e5911cb70f745a2f43fd6d30bcafe6c9.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/9f8672db3e494012c0f6086d15ccbeb5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/ca8b7577978db11e788647c703d57080.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201509/f21ad4f657c10aaaca6127913b140c3d.png)
转自:http://njkf-hp.iteye.com/blog/1965218?utm_source=tuicool
相关文章推荐
- DWZ刷新dialog解决方法
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- ztree获取当前选中节点子节点id集合的方法
- DWZ table的原生分页浅谈
- asp.net4.0框架下验证机制失效的原因及处理办法
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记
- Flex中最好的MVC框架Mate框架
- JavaScript 异步调用框架 (Part 4 - 链式调用)
- JavaScript 异步调用框架 (Part 2 - 用例设计)
- 为什么使用框架 使用框架的优缺点