DWZ整合ZTREE
2015-09-18 17:08
323 查看
1.准备工作:
Dwz 1.4.6
ZTree 3.5.15
Jquery 1.7.2
2.工程视图
![](http://dl2.iteye.com/upload/attachment/0090/5325/26d94178-cf03-3416-be8d-a8c9eb35b757.png)
3. 整合步骤
3.1.CSS替换:
找到DWZ中的core.css 文件,注释tree样式;将zTree中的样式文件css/zTreeStyle/zTreeStyle.css内容拷贝至core.css中,最好是文件追加;并将zTree中图标资源文件夹[ztree\css\zTreeStyle\img]拷贝DWZ的themes\css目录。如图:
![](http://dl2.iteye.com/upload/attachment/0090/5323/87a13136-7a86-304a-b8d5-624978a36755.png)
3.2:Js脚本修改:
Dwz.ui.js注释initUI函数中以下代码段:
//$("ul.tree", $p).jTree();
jquery.ztree.core-3.5.js有多次需要修改,按如下步骤调整:
makeDOMNodeNameBefore函数追加:
if (node.rel) {
//alert(node.name+".rel="+node.rel);
html.push(" rel='", node.rel,"'");
}
makeNodeTarget函数改为:
return (node.target || "navTab");
在updateNode方法上方添加setNodeRel函数:
setNodeRel: function(setting, node) {
var aObj = $("#" + node.tId + consts.id.A),
rel = treeNode.rel;
if (rel == null || rel.length == 0) {
aObj.removeAttr("rel");
} else {
aObj.attr("rel", rel);
}
}
updateNode函数调用setNodeRel函数
view.setNodeRel(setting, node);
4.前端应用
页面引用jquery.ztree.core-3.5.js;
Js代码段:
Js代码
![](http://njkf-hp.iteye.com/images/icon_star.png)
<SCRIPT type="text/javascript">
<!--
var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onExpand: zTreeRegisterTarget
}
};
var zNodes = [{ id : 0,
pId : -1,
name : "搜索",
url : "demo/w_alert.html",
target : "navTab",
rel : "sl",
open:true, //设置true就子节点无任何问题
children:[{
id : 1,
pId : 0,
name : "百度",
url : "demo/w_panel.html",
target : "navTab",
rel : "bd",
//open:true,
children:[{
id : 1,
pId : 0,
name : "文库",
url : "demo/w_tabs.html",
target : "navTab",
rel : "wk"
}, {
id : 2,
pId : 0,
name : "地图",
url : "demo/w_dialog.html",
target : "navTab",
rel : "dt"
} ]
}, {
id : 2,
pId : 0,
name : "Google",
url : "http://www.google.com.cn",
target : "navTab",
rel : "gg"
} ]},{
id : -2,
pId : -1,
name : "门户",
url : "http://www.sina.com.cn",
target : "navTab",
rel : "xl"
}];
function zTreeRegisterTarget(event, treeId, treeNode) {
initUI($('#'+treeId));
}
$(document).ready(function(){
$.fn.zTree.init($("#ztreedemo"), setting, zNodes);
});
//-->
</SCRIPT>
Html代码段:
Html代码
![](http://njkf-hp.iteye.com/images/icon_star.png)
<div class="accordionHeader">
<h2><span>Folder</span>ZTree整合</h2>
</div>
<div class="accordionContent">
<ul id="ztreedemo" class="ztree"></ul>
</div>
在实际调试中遇到点击子节点依然在新窗口中弹出问题:
若Json对象中的父节点没有设置open=true时,在前段点击是能正常展开,但是点击子节点时,不是按照target=navTab方式弹出页面,而是新窗口弹出。
Firebug后发现生成的html没有任何问题,而是没有重新加载样式;为了解决此问题可以在展开后调用initUI方法,使用onExpand方法实现,主要代码如下:
var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onExpand: zTreeRegisterTarget
}
};
function zTreeRegisterTarget(event, treeId, treeNode) {
initUI($('#'+treeId));//可直接调用initUI();但考虑性能则直接找到tree的DOM对象
}
此解决方式后续再完善,封装为通用版。
前段效果图:
![](http://dl2.iteye.com/upload/attachment/0090/5321/1e8b29d1-a835-3f34-b3f5-9eb259253552.png)
转自:http://njkf-hp.iteye.com/blog/1964232
Dwz 1.4.6
ZTree 3.5.15
Jquery 1.7.2
2.工程视图
![](http://dl2.iteye.com/upload/attachment/0090/5325/26d94178-cf03-3416-be8d-a8c9eb35b757.png)
3. 整合步骤
3.1.CSS替换:
找到DWZ中的core.css 文件,注释tree样式;将zTree中的样式文件css/zTreeStyle/zTreeStyle.css内容拷贝至core.css中,最好是文件追加;并将zTree中图标资源文件夹[ztree\css\zTreeStyle\img]拷贝DWZ的themes\css目录。如图:
![](http://dl2.iteye.com/upload/attachment/0090/5323/87a13136-7a86-304a-b8d5-624978a36755.png)
3.2:Js脚本修改:
Dwz.ui.js注释initUI函数中以下代码段:
//$("ul.tree", $p).jTree();
jquery.ztree.core-3.5.js有多次需要修改,按如下步骤调整:
makeDOMNodeNameBefore函数追加:
if (node.rel) {
//alert(node.name+".rel="+node.rel);
html.push(" rel='", node.rel,"'");
}
makeNodeTarget函数改为:
return (node.target || "navTab");
在updateNode方法上方添加setNodeRel函数:
setNodeRel: function(setting, node) {
var aObj = $("#" + node.tId + consts.id.A),
rel = treeNode.rel;
if (rel == null || rel.length == 0) {
aObj.removeAttr("rel");
} else {
aObj.attr("rel", rel);
}
}
updateNode函数调用setNodeRel函数
view.setNodeRel(setting, node);
4.前端应用
页面引用jquery.ztree.core-3.5.js;
Js代码段:
Js代码
![](http://njkf-hp.iteye.com/images/icon_star.png)
<SCRIPT type="text/javascript">
<!--
var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onExpand: zTreeRegisterTarget
}
};
var zNodes = [{ id : 0,
pId : -1,
name : "搜索",
url : "demo/w_alert.html",
target : "navTab",
rel : "sl",
open:true, //设置true就子节点无任何问题
children:[{
id : 1,
pId : 0,
name : "百度",
url : "demo/w_panel.html",
target : "navTab",
rel : "bd",
//open:true,
children:[{
id : 1,
pId : 0,
name : "文库",
url : "demo/w_tabs.html",
target : "navTab",
rel : "wk"
}, {
id : 2,
pId : 0,
name : "地图",
url : "demo/w_dialog.html",
target : "navTab",
rel : "dt"
} ]
}, {
id : 2,
pId : 0,
name : "Google",
url : "http://www.google.com.cn",
target : "navTab",
rel : "gg"
} ]},{
id : -2,
pId : -1,
name : "门户",
url : "http://www.sina.com.cn",
target : "navTab",
rel : "xl"
}];
function zTreeRegisterTarget(event, treeId, treeNode) {
initUI($('#'+treeId));
}
$(document).ready(function(){
$.fn.zTree.init($("#ztreedemo"), setting, zNodes);
});
//-->
</SCRIPT>
Html代码段:
Html代码
![](http://njkf-hp.iteye.com/images/icon_star.png)
<div class="accordionHeader">
<h2><span>Folder</span>ZTree整合</h2>
</div>
<div class="accordionContent">
<ul id="ztreedemo" class="ztree"></ul>
</div>
在实际调试中遇到点击子节点依然在新窗口中弹出问题:
若Json对象中的父节点没有设置open=true时,在前段点击是能正常展开,但是点击子节点时,不是按照target=navTab方式弹出页面,而是新窗口弹出。
Firebug后发现生成的html没有任何问题,而是没有重新加载样式;为了解决此问题可以在展开后调用initUI方法,使用onExpand方法实现,主要代码如下:
var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onExpand: zTreeRegisterTarget
}
};
function zTreeRegisterTarget(event, treeId, treeNode) {
initUI($('#'+treeId));//可直接调用initUI();但考虑性能则直接找到tree的DOM对象
}
此解决方式后续再完善,封装为通用版。
前段效果图:
![](http://dl2.iteye.com/upload/attachment/0090/5321/1e8b29d1-a835-3f34-b3f5-9eb259253552.png)
转自:http://njkf-hp.iteye.com/blog/1964232
相关文章推荐
- 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 - 用例设计)
- 为什么使用框架 使用框架的优缺点