js 树菜单 ztree
/**<div id="menuContent" class="menuContent" style=" position: absolute;"><ul id="orgTree" class="ztree" style="margin-top:0; width:160px;"></ul></div>*///var allowClick = true; //标记节点是否能被点击var sdorg={};/*** 初始化组织机构树* renderId 渲染位置* nodeClick 点击时触发的事件* beforeNodeClick 点击前触发的事件* ischkbox 是否显示多选框*/sdorg.showcurrorg =function (renderId,nodeClick,beforNodeClick,ischkbox) {var orgNodes;var setting = {data:{simpleData:{enable:true,idKey:"id",pIdKey:"parentId",root:0},key:{name:"orgName"}},view:{showIcon:true},check:{enable:ischkbox,chkStyle:'checkbox',chkboxType:{ "Y": "", "N": "" }//,autoCheckTrigger: false},async:{enable:true,url:baseURL+"/org/org!listOrgNode.action",autoParam:["id"],dataFilter:ajaxDataFilter},callback:{// onExpand:expandParentOrg,onClick:nodeClick||_nodeClick,beforeClick:beforNodeClick||_beforNodeClick,}};var url =baseURL+'/org/org!listOrgRoot.action';$.ajax({url:url,type:'post',dataType:'json',success:function (result) {if ('0' == result.code) {$.fn.zTree.init($('#'+renderId), setting, null);var orgTree = $.fn.zTree.getZTreeObj(renderId);orgTree.addNodes(null, result.data.orgList );// 展开机构树的根节点var rootNodes = orgTree.getNodes();if (rootNodes.length > 0)orgTree.expandNode(rootNodes[0], true, false, true);//orgTree.expandAll(true);} else {alert(result.desc);}}});}sdorg.showcurrorg1 =function (renderId,nodeClick,nodeCheck,ischkbox,beforeShow,onExpand,orgId,orgName) {var orgNodes;var setting = {data:{simpleData:{enable:true,idKey:"organizationId",pIdKey:"parentId",root:0},key:{name:"organizationName"}},view:{showIcon:true},check:{enable:ischkbox,chkStyle:'checkbox',chkboxType: { "Y": "s", "N": "s" },autoCheckTrigger: true},async:{enable:true,url:baseURL+"/org/org!listOrgNode.action",autoParam:["organizationId"],dataFilter:ajaxDataFilter},callback:{// onExpand:expandParentOrg,onClick:nodeClick||_nodeClick,onCheck:nodeCheck,onExpand:onExpand}};//var url = cur_user_id=="admin"?baseURL+'/orgext/orgext!listOrgRoot.action':baseURL+'/orgext/orgext!listOrgUnderCurrentUserOrg.action';var url = orgId?baseURL+'/org/org!listOrgNode.action':baseURL+'/org/org!listOrgRoot.action';// alert(orgId); return;$.ajax({url:url,type:'post',dataType:'json',data:{organizationId:orgId},success:function (result) {if ('0' == result.code) {$.fn.zTree.init($('#'+renderId), setting, null);var orgTree = $.fn.zTree.getZTreeObj(renderId);if(orgId){var newNode = {organizationId:orgId,organizationName:orgName};orgTree.addNodes(null, newNode);orgTree.addNodes(orgTree.getNodeByParam("organizationId",orgId,null), result.data.orgList );}else{orgTree.addNodes(null, result.data.orgList );}// 展开机构树的根节点var rootNodes = orgTree.getNodes();if (rootNodes.length > 0)orgTree.expandNode(rootNodes[0], true, false, true);//orgTree.expandAll(true);beforeShow&&beforeShow.call();} else {alert(result.desc);}}});}sdorg.showchildorg= function (renderId,orgId,nodeClick,beforNodeClick,ischkbox,iscanexpand) {var orgNodes;var setting = {data:{simpleData:{enable:true,idKey:"organizationId",pIdKey:"parentId",root:0},key:{name:"organizationName"}},view:{showIcon:true},check:{enable:ischkbox,chkStyle:'checkbox',chkboxType:{ "Y": "", "N": "" }//,autoCheckTrigger: false},async:{enable:iscanexpand||false,url:baseURL+"/orgext/orgext!listOrgNode.action",autoParam:["organizationId"],dataFilter:ajaxDataFilter},callback:{// onExpand:expandParentOrg,onClick:nodeClick||_nodeClick,beforeClick:beforNodeClick||_beforNodeClick,}};var url = orgId?baseURL+'/orgext/orgext!listOrgNode.action':baseURL+'/orgext/orgext!listOrgRoot.action';$.ajax({url:url,type:'post',data:{organizationId:orgId},dataType:'json',success:function (result) {if ('0' == result.code) {orgNodes =ajaxDataFilter(null, null, result); //result.data.orgList;if (orgNodes.length > 0) {$.fn.zTree.init($('#'+renderId), setting, orgNodes);// 展开机构树的根节点var orgTree = $.fn.zTree.getZTreeObj(renderId);var rootNodes = orgTree.getNodes();if ((!orgId||iscanexpand)&&rootNodes.length > 0)orgTree.expandNode(rootNodes[0], true, false, true);//orgTree.expandAll(true);}} else {alert(result.desc);}}});}///*** 异步加载节点数据后的处理函数* @param treeId* @param parent* @param result*/function ajaxDataFilter(treeId, parent, result) {//if ('0' == result.code) {return result.data.orgList;//}}function _nodeClick(event, treeId, treeNode) {//console.info(treeNode);//alert(treeNode.organizationId);//alert(treeNode.organizationName);}/*** 控制节点是否能被选中* @param treeId* @param treeNode* @param clickFlag*/function _beforNodeClick(treeId, treeNode, clickFlag) {}//当前对应input框 显示的input 和要隐藏id的inputvar $_currdom2,$_hiddendom2;//显示下拉树function showMenu2(inputid,hiddenid) {$_currdom2 = $("#"+inputid);$_hiddendom2 = $("#"+hiddenid);var cityOffset = $_currdom2.offset();$("#Content").css({left:cityOffset.left, top:cityOffset.top-50}).slideDown("fast");$("body").bind("mousedown", onBodyDown2);}//隐藏下拉树function hideMenu2() {$("#Content").fadeOut("fast");$("body").unbind("mousedown", onBodyDown2);}//点击页面其他位置时,下拉树退出function onBodyDown2(event) {if (!(event.target.id == "Btn" || event.target.id == "Content" || $(event.target).parents("#Content").length>0)) {hideMenu2();}}//节点点击事件function onClick2(e, treeId, treeNode) {$_currdom2.val(treeNode.organizationName);$_currdom2.focus();$_hiddendom2.val(treeNode.organizationId);$("#Content").fadeOut("fast");}function onCheck(e,treeId,treeNode){var treeObj = $.fn.zTree.getZTreeObj("org");var $ckNode = treeObj.getCheckedNodes();var orgName = "";var orgId = "";$($ckNode).each(function(){orgName+=this.organizationName+",";orgId+=this.organizationId+",";})$_currdom2.val(orgName);$_hiddendom2.val(orgId);}
<!-- 组织架构树 --><div id="Content" class="menuContent" style="position:absolute;display:none;z-index:10000;"><ul id="org" class="ztree" style="margin-top:0; width:350px; background:white; border:2px dotted #cccccc;"></ul></div>
js 树菜单 ztree的更多相关文章
- vue.js 树菜单 递归组件树来实现
树形视图 Example: https://vuefe.cn/v2/examples/tree-view.html 参照前辈方法实现的,觉得不错,记录一下: 父组件: <!-- 菜单树 --&g ...
- js无限级树菜单
以前做网站,树形菜单一般都很简单,自己定义风格样式,简单的js控制,后来原来网上很多文章都在讨论Js树型菜单,看了几个实例,发现这个树比较简单好用. http://hovertree.com/texi ...
- JS树形菜单
超全的JS树形菜单源代码共享(有实例图) 树形菜单是很常用的效果,常用在管理软件当中,但是一套树形菜单已经不能满足需求,所以如果能有一套比较全面的树形菜单JS特效代码,将会非常方便,下面懒人萱将超全的 ...
- C#动态加载树菜单
在做权限系统的时候,需要有一个树形的菜单.下图就是一个树形菜单的样式 但问题是,我们可以实现写死的树形菜单.什么是写死的?就是在前台代码中写好要加载的树形菜单是什么样子的.但是我们权限系统的要求是动态 ...
- EasyUI 树菜单
EasyUI 树菜单 通过ssm框架项目实现EasyUI 的树菜单的单选,复选,异步加载树,同步加载树和树权限控制等功能. 本章知识点 效果图: 需求:通过SSM框架,实现EasyUI 树菜单的单选, ...
- 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
这几天研究了基于bootstrap Ace模板+bootstra.addtabs.js实现菜单的效果 参考了这个人的博客 https://www.cnblogs.com/landeanfen/p/76 ...
- js矩阵菜单或3D立体预览图片效果
js矩阵菜单或3D立体预览图片效果 下载地址: http://files.cnblogs.com/elves/js%E7%9F%A9%E9%98%B5%E8%8F%9C%E5%8D%95%E6%88% ...
- 顶 兼容各种浏览器js折叠菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 适合移动手机使用的js环形菜单特效插件
blooming-menu是一款适合在移动手机上使用的js环形菜单插件.该环形菜单提供了众多的參数,通过结合CSS3动画制作出效果很炫酷的圆形菜单展开和隐藏动画效果. 以下是这个圆形菜单菜价的可用參数 ...
随机推荐
- Zclip:复制页面内容到剪贴板兼容各浏览器
WEB开发中,要让用户复制页面中的一段代码.URL地址等信息,为了避免用户拖动鼠标再进行右键复制操作而可能出现的差错,我们可以直接在页面中放置一个复制按钮,只需要轻轻一点这个复制按钮,内容将会被复制, ...
- 使用mocha测试
学习了MOCHA官网的示例,将学习成果记录一下.[原文+例子:使用mocha测试] mocha是什么 Mocha是一个跑在node和浏览器上的javascript测试框架,让异步测试变得简单有趣, 并 ...
- 更简单更全的material design状态栏
从实际使用须要出发,以最简单的方式实现了几种类型的MD状态栏. (重点在fitsSystemWindows的使用) 0,使用前提 Theme.AppCompat.Light.DarkActionBar ...
- 【数据压缩】LZW算法原理与源代码解析
转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/50331883 <勿在浮沙筑高台> LZW压缩算法原理很easy,因 ...
- The application is in break mode
在安装使用Visual Studio 2017后,当代码出现异常的时候,它没有调到代码出错的地方,显示了下图.. 解决办法:打开 Debug——>Options——>,勾上 Use Man ...
- 算法笔记_037:寻找和为定值的两个数(Java)
目录 1 问题描述 2 解决方案 2.1 排序夹逼法 1 问题描述 输入一个整数数组和一个整数,在数组中查找两个数,满足他们的和正好是输入的那个整数.如果有多对数的和等于输入的整数,输出任意一对即 ...
- 算法笔记_031:计算中值和选择问题(Java)
目录 1 问题描述 2 解决方案 2.1 计算中值问题 2.2 选择问题 1 问题描述 中值问题是求一个n个数列表中某一数组下标k,它要求该下标元素比列表中的一半元素大,又比另一半元素小,这个中 ...
- QtGui.QFontDialog
The QtGui.QFontDialog is a dialog widget for selecting a font. #!/usr/bin/python # -*- coding: utf-8 ...
- 桥(Bridge)模式
Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用桥模式 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以 ...
- element-ui table 前端渲染序号 index
1.前端渲染table 序号 2.使用element ui http://element-cn.eleme.io/#/zh-CN/component/table#zi-ding-yi-suo-yin ...