JavaScript JsTree实例

  1 var RightTree= function () { };
  2 RightTree.prototype = {
  3 //初始化权限树
  4     InitRightTree: function () {
  5         $.ajax({
  6             type: "get",
  7             url: "/Handler/RoleHandler.ashx",
  8             dataType: "json",
  9             data: { type: 6, _: Math.random() },
 10             async: false,
 11             success: function (result) {
 12                 if (result.ReturnType == true) {
 13                     var objs = eval(‘(‘ + result.ReturnData + ‘)‘);
 14                     $("#treeCheckbox").jstree({
 15                         "core": { "data": objs },
 16                         "types": {
 17                             ‘default‘: {
 18                                 ‘icon‘: ‘fa fa-folder‘
 19                             },
 20                             ‘file‘: {
 21                                 ‘icon‘: ‘fa fa-file‘
 22                             }
 23                         },
 24                         "checkbox": {
 25                             "keep_selected_style": false
 26                         },
 27                         "plugins": ["checkbox"]
 28                     });
 29                 }
 30             }
 31         });
 32     },
 33     //获取已分配权限
 34     GetRightTree: function (roleId) {
 35         $.ajax({
 36             type: "get",
 37             url: "/Handler/RoleHandler.ashx",
 38             dataType: "json",
 39             data: { type: 5, Id: roleId, _: Math.random() },
 40             async: false,
 41             success: function (result) {
 42                 if (result.ReturnType == true) {
 43                     //设置权限树Tree
 44                     $.jstree.reference(‘#treeCheckbox‘).deselect_all();
 45                     var objs = eval(‘(‘ + result.ReturnData.pageJson + ‘)‘);
 46                     for (var i = 0; i < objs.length; i++) {
 47                         var obj = objs[i];
 48                         $.jstree.reference(‘#treeCheckbox‘).select_node("Page_" + obj.id);
 49                     }
 50                     objs_func = eval(‘(‘ + result.ReturnData.funcJson + ‘)‘);
 51                     $("#treeCheckbox").bind(‘click.jstree‘, function (event) {
 52                         var eventNodeName = event.target.nodeName;
 53                         if (eventNodeName == ‘A‘) {
 54                             var $subject = $(event.target).parent();
 55                             if ($subject.find(‘ul‘).length > 0) {
 56                             } else {
 57                                 var id = $(event.target).parents(‘li‘).attr(‘id‘);
 58                                 if (id.indexOf("Page_") == 0) {
 59                                     id = id.substring(5);
 60                                     $("#funcContainer").text("");
 61                                     for (var i = 0; i < objs_func.length; i++) {
 62                                         var obj = objs_func[i];
 63                                         if (obj.parent == id) {
 64                                             var isChecked = "";
 65                                             var className = "btn-default";
 66                                             if (obj.isChecked == "True") {
 67                                                 isChecked = "checked=‘checked‘ ";
 68                                                 className = "btn-primary";
 69                                             }
 70                                             var str = "<a href=‘#3‘ style = ‘width:200px; height:40px;‘ id=‘btn_" + obj.id + "‘ class=‘btn btnFunc " + className + " btn-corner‘><input id=‘check_" + obj.id + "‘ type=‘checkbox‘ hidden=‘hidde‘ " + isChecked + "‘ /><label style = ‘position:absolute; width:200px; height:42px; margin-left:-100px; margin-top:-8px; line-height:42px‘ id=‘lb_" + obj.id + "‘ for=‘check_" + obj.id + "‘>" + obj.text + "</label></a>&nbsp</br></br>";
 71                                             $("#funcContainer").append(str);
 72                                         }
 73                                     }
 74                                     //点击操作按钮
 75                                     $(".btnFunc").unbind("click").click(function (event) {
 76                                         var eventNodeName = event.target.nodeName;
 77                                         if (eventNodeName == ‘INPUT‘ || eventNodeName == ‘A‘) {//“LABEL”
 78                                             var fid = $(this).attr("id").substring(9);
 79                                             if ($("#check_Func_" + fid).attr("checked")) {
 80                                                 $("#check_Func_" + fid).attr("checked", false);
 81                                                 $("#btn_Func_" + fid).removeClass("btn-primary");
 82                                                 $("#btn_Func_" + fid).addClass("btn-default");
 83                                             } else {
 84                                                 $("#check_Func_" + fid).attr("checked", true);
 85                                                 $("#btn_Func_" + fid).removeClass("btn-default");
 86                                                 $("#btn_Func_" + fid).addClass("btn-primary");
 87                                             }
 88                                             var count = 0;
 89                                             for (var i = 0; i < objs_func.length; i++) {
 90                                                 var obj = objs_func[i];
 91                                                 if (obj.id == $(this).attr("id").substring(4)) {
 92                                                     obj.isChecked = $("#check_Func_" + fid).attr("checked") ? "True" : "False";
 93                                                 }
 94                                                 if (obj.parent == id && obj.isChecked == "True") {
 95                                                     count++;
 96                                                 }
 97                                             }
 98                                             if (count) {
 99                                                 $.jstree.reference(‘#treeCheckbox‘).select_node("Page_" + id);
100                                             }
101                                             else {
102                                                 $.jstree.reference(‘#treeCheckbox‘).deselect_node("Page_" + id);
103                                             }
104                                         }
105                                     });
106                                     $("#btnCheckAll").unbind("click").click(function (event) {
107                                         var eventNodeName = event.target.nodeName;
108                                         if (eventNodeName == ‘INPUT‘ || eventNodeName == ‘A‘) {//"LABEL"
109                                             if ($(this).attr("checked")) {
110                                                 $(this).attr("checked", false);
111                                                 $("input[type=‘checkbox‘]").attr("checked", false);
112                                                 $(".btnFunc").attr("class", "btn btnFunc btn-corner btn-default");
113                                                 $.jstree.reference(‘#treeCheckbox‘).deselect_node("Page_" + id);
114                                             }
115                                             else {
116                                                 $(this).attr("checked", true);
117                                                 $("input[type=‘checkbox‘]").attr("checked", true);
118                                                 $(".btnFunc").attr("class", "btn btnFunc btn-corner btn-primary");
119                                                 $.jstree.reference(‘#treeCheckbox‘).select_node("Page_" + id);
120                                             }
121                                             for (var i = 0; i < objs_func.length; i++) {
122                                                 var obj = objs_func[i];
123                                                 if (obj.parent == id) {
124                                                     obj.isChecked = $(this).attr("checked") ? "True" : "False";
125                                                 }
126                                             }
127                                         }
128                                     });
129                                 }
130                             }
131                         }
132                     });
133                 }
134             }
135         });
136     },
137     //保存配置的权限
138     SaveRightTree: function (roleId) {
139         var funcArr = new Array();
140         for (var i = 0; i < objs_func.length; i++) {
141             if (objs_func[i].isChecked == "True") {
142                 funcArr.push(objs_func[i].id);
143             }
144         }
145         var treeArr = new Array();
146         var treeSelect = $.jstree.reference(‘#treeCheckbox‘).get_selected(true);
147         for (var i = 0; i < treeSelect.length; i++) {
148             if ($.inArray(treeSelect[i].id, treeArr) < 0) {
149                 treeArr.push(treeSelect[i].id);
150             }
151             if (treeSelect[i].id.indexOf("Page_") < 0 && treeSelect[i].parent != "#" && $.inArray(treeSelect[i].parent, treeArr) < 0) {
152                 treeArr.push(treeSelect[i].parent);
153             }
154         }
155         var funcList = funcArr.join(‘,‘);
156         var treeList = treeArr.join(‘,‘);
157         $.ajax({
158             type: "post",
159             url: "/Handler/RoleHandler.ashx",
160             dataType: "json",
161             data: { type: 7, RoleId: roleId, FuncList: funcList, TreeList: treeList, _: Math.random() },
162             async: false,
163             cache: false,
164             complete: function () { },
165             success: function (result) {
166                 if (result.ReturnType) {
167                     alert(result.ReturnMsg);
168                 }
169             }
170         });
171     }172 }

http://www.jstree.com/     Jstree API

时间: 2024-08-10 21:28:55

JavaScript JsTree实例的相关文章

Win10系列:JavaScript综合实例1

上面几个小节讲解了使用HTML5和JavaScript语言开发Windows 应用商店应用时会用到的一些技术,本小节将前面介绍的知识融合在一起创建一个菜谱应用程序,帮助读者更进一步地理解和掌握这些知识. 此菜谱应用程序主要的功能是介绍一些菜肴和主食的做法,其中包含三个页面:第一个页面为主页面,用于按类别显示一些菜肴和主食:第二个页面为分类页面,显示某个类别的信息和属于该类别的菜肴或主食:第三个页面为菜肴页面,显示某项菜肴或主食的详细信息,如名称.图片和具体做法.这三个页面可以相互跳转,例如,在主

编写自己的代码库(javascript常用实例的实现与封装)

编写自己的代码库(javascript常用实例的实现与封装) 1.前言 大家在开发的时候应该知道,有很多常见的实例操作.比如数组去重,关键词高亮,打乱数组等.这些操作,代码一般不会很多,实现的逻辑也不会很难,下面的代码,我解释就不解释太多了,打上注释,相信大家就会懂了.但是,用的地方会比较,如果项目有哪个地方需要用,如果重复写的话,就是代码沉余,开发效率也不用,复用基本就是复制粘贴!这样是一个很不好的习惯,大家可以考虑一下把一些常见的操作封装成函数,调用的时候,直接调用就好!源码都放在githu

10种JavaScript特效实例让你的网站更吸引人

我们有三种主要的方法(从难到易):自己动手写脚本;使用类似于jQuery和mooTools的JavaScript框架(可以让编写代码变得更容易些);使用能工作于现有的JavaScript框架下的提前预置好的脚本或那种从头开始开发的创建者.这篇文章适合那些打算提高工作效率或不愿意从头开发脚本的人阅读. 您还可以参考以下JavaScript/Ajax相关教程及资源:<10个非常棒的Ajax及Javascript实例资源网站><12种Javascript解决常见浏览器兼容问题的方法>&l

JavaScript动画实例:李萨如曲线

在“JavaScript图形实例:阿基米德螺线”和“JavaScript图形实例:曲线方程”中,我们学习了利用曲线的方程绘制曲线的方法.如果想看看曲线是怎样绘制出来的,怎么办呢?编写简单的动画,就可以展示指定曲线的绘制过程. 1.李萨如曲线 设定李萨如曲线的坐标方程为: X=SIN(2θ) Y=SIN(3θ)     (0≤θ≤2π) 将0~2π区间等分512段,取θ的初始值π/256,按曲线方程求得坐标值(x,y),并在当前坐标处通过绘制一个实心圆的方式描点.之后每隔0.02秒,将θ的初始值加

2015/12/13 --高级javascript实例和部分javascript对象实例

<html> <head> <script type = "text/javascript"> //替换字符串中的字符--replace()方法 var str = "Do you love me?"; document.write(str.replace (/me/who)); //查找字符串中指定的字符,若找到,返回该字符.---match()方法 var str = "hello kitty"; docu

JavaScript特效实例018-下降式浏览器

实例018                               下降式浏览器 实例说明 本实例是在窗口打开时,将整个窗口放在屏幕的最上面,使窗口无法在屏幕中进行显示,然后动态地使窗口进行下移,直到窗口显示在屏幕的左上角为止. 技术要点 本实例主要应用了screen对象的availHesht属性来获得当前屏幕工作区的高度,并用window对象的moveBy()方法使窗口自动下移.下面对window对象的moveBy()方法进行详细的介绍. moveBy()方法的语法格式: window.m

JavaScript正则表达式实例汇总

本文会持续更新 ------------------------------------------------------------------------------------------------------------- 基本语法 关于语法部分就不啰嗦了,全世界都能找到相关知识 详细信息请参阅:W3school参考手册JavaScript RegExp 对象 当然,你也可以参考下面的博客园的他人博客,我就不重复造轮子了:js之正则表达式(上)      JS正则表达式大全(整理详细

JavaScript特效实例001-打开新窗口显示广告信息

实例001                 打开新窗口显示广告信息 实例说明 本实例要在窗口每次被加载的时候弹出一个广告对话框. 技术要点 本实例主要应用JavaScript的window对象. window对象的常用方法 方法 说明 alert() 弹出一个警告对话框 confirm() 在确认对话框中显示指定的字符串 prompt() 弹出一个提示对话框 close() 关闭被引用的窗口 focus() 将被引用的窗口放在所有打开窗口的前面 open() 打开新浏览器窗口并且显示由URL或名

JavaScript特效实例004-自动关闭的广告窗口

实例004                  自动关闭的广告窗口 实例说明 当网页运行一定的时间后,自动关闭网页上指定的广告窗口. 技术要点 本实例主要应用window对象的setTimeout()方法和close()方法来实习.window对象的setTimeout()方法用于延迟执行某一操作. 实现过程 (1)要关闭的广告窗口. new.html <html> <head> <title>打开新窗口显示广告信息</title> <style typ