zoukankan      html  css  js  c++  java
  • 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 = '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; 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 

  • 相关阅读:
    Procedure execution failed 2013
    struts2总结四:Action与Form表单的交互
    JQuery中的DOM操作
    easyui提交表单数据的时候如何防止二次提交
    一句话
    字符串截取函数substr和substring的不同及其相关说明
    四句话
    JAVA定时执行任务,每天定时几点钟执行任务
    JAVA定时执行任务的三种方法
    struts2总结三:struts2配置文件struts.xml的简单总结
  • 原文地址:https://www.cnblogs.com/lvyongbo/p/4623528.html
Copyright © 2011-2022 走看看