多功能jQuery树插件zTree实现权限列表简单实例
来源: 阅读:1308 次 日期:2016-07-28 15:04:24
温馨提示: 小编为您整理了“多功能jQuery树插件zTree实现权限列表简单实例”,方便广大网友查阅!

zTree 是一个依靠jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

页面主要引入一下几个文件: 

<link type="text/css" rel="stylesheet" href="zTree/zTreeStyle.css" />

<script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>

<script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script> 

html页面: 

<div class="edit_content">

     <div class="qxlb">

       <div class="add_title"> 

         <span>权限列表</span>

       </div>

       <div class="qxlb_content">

       <ul id="tree" class="ztree"></ul>

       </div>

     </div>

</div>

核心js:

<SCRIPT type="text/javascript">

var zTree;

//创建树型结构

function createTree() {

  var setting = {

    check:{

      enable:true

    },

    view: {

      dblClickExpand: true,

      expandSpeed: ""

    },

    //异步加载

    async: {

      enable: true,//设置是否异步加载

      url:"<%=path%>/role/getResourcesList.do", //设置异步获取节点的 URL 地址

      otherParam: [ "roleId", '${updateRole.id}']

    },

    //这个data里面的pIdKey,idKey,name等等之类的都是对应后台查出的字段名字,

     在sql中写好或者在拼接json的时候先拼接好,前太接收的时候只要对应一直就可以了

    data: {

      simpleData: {

        enable: true,

        pIdKey: "PARENTID",

        idKey: "ID"

      },

        key: {

          checked: "CHECKED",

          name:"NAME"

        }

    },

    callback: {

     onAsyncSuccess: zTreeOnAsyncSuccess 

  } 

  };

  //初始化  

  zTree = $.fn.zTree.init($("#tree"), setting);  

  zTree.expandAll(true);

}

/* 异步加载无法展开tree 默认展开一级菜单 */

var firstAsyncSuccessFlag = 0;

function zTreeOnAsyncSuccess(event, treeId, msg) { 

if (firstAsyncSuccessFlag == 0) { 

     try { 

         //调用默认展开第一个结点 

         var selectedNode = zTree.getSelectedNodes(); 

         var nodes = zTree.getNodes(); 

         zTree.expandNode(nodes[0], true); 

         var childNodes = zTree.transformToArray(nodes[0]); 

         zTree.expandNode(childNodes[1], true); 

         zTree.selectNode(childNodes[1]); 

         var childNodes1 = zTree.transformToArray(childNodes[1]); 

         zTree.checkNode(childNodes1[1], true, true); 

         firstAsyncSuccessFlag = 1; 

      } catch (err) { 

      } 

   } 

}

$(function(){

  //页面加载完成创建树

  createTree();  

});

function submitRole(){

  //获取选中的节点,传到后台

  var nodes = zTree.getCheckedNodes();

  var ids = [];

  for(var i=0,l=nodes.length;i<l;i++){

    ids[ids.length] = nodes[i].ID;

  }

  //var _resourcesIds=ids.join(",");

  document.getElementById("hidden_resourceList").value=ids.join(",");

  //$("#resourcesRoleListForm").submit();

}

</SCRIPT>

其中数据通过后台递归查询实现,以json的形式传到前台,进行接收。更多的内容可以参考API,里面的例子很详细。

以上就是本文的全部内容,希望对大家的学习有所帮助

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map