JSTree--JSON--你常用的几个功能展示

JSTree是基于JQuery的一个树型插件,1.0之后的编码风格跟JQuery完全一致,JSTree完全实现了组件化,并且支持html、json、xml等多种数据源格式,完全可以实现动态加载,它的主要组件有themes、json_data、html_data、xml_data、ui、crrm、types、contextmenu、search等等。不废话,直接上JSON的例子。

 

$(function() {
  $("#demo1").jstree(
    {

     //json格式数据

     "json_data" : {
      "data" : [ {
       "data" : {
        "title" : "结点1"
       },
       "attr" : {
        "rel" : "folder",
        "id" : "1"
       },
       "state" : "closed",
       "children" : [ {
        "attr" : {
         "rel" : "folder",
         "id" : "11"
        },
        "data" : {
         "title" : "结点11"

        },
        "children" : [ {
         "attr" : {
          "rel" : "file",
          "id" : "11"
         },
         "data" : {
          "title" : "结点111"

         }
        }, {
         "attr" : {
          "rel" : "file",
          "id" : "12"
         },
         "data" : {
          "title" : "结点112"

         }
        } ]
       }, {
        "attr" : {
         "rel" : "file",
         "id" : "12"
        },
        "data" : {
         "title" : "结点12"

        }
       } ]
      }, {
       "attr" : {
        "id" : "2"
       },
       "data" : {
        "title" : "结点2"

       },
       "children" : [ {
        "attr" : {
         "id" : "21"
        },
        "data" : {
         "title" : "结点21"

        }
       }, {
        "attr" : {
         "id" : "22"
        },
        "data" : {
         "title" : "结点22"

        }
       } ]
      } ]
     },

//右键菜单组件,支持增删改
     "contextmenu" : {
      "items" : { // Could be a function that should return an object like this one
       "create" : {
        "separator_before" : false,
        "separator_after" : true,
        "label" : "添加结点",
        "action" : function(obj) {
         this.create(obj);
        }
       },
       "rename" : {
        "separator_before" : false,
        "separator_after" : false,
        "label" : "重新命名",
        "action" : function(obj) {
         this.rename(obj);
        }
       },
       "remove" : {
        "separator_before" : false,
        "icon" : false,
        "separator_after" : false,
        "label" : "删除结点",
        "action" : function(obj) {
         this.remove(obj);
        }
       },
       "ccp" : {
        "separator_before" : true,
        "icon" : false,
        "separator_after" : false,
        "label" : "编辑结点",
        "action" : false,
        "submenu" : {
         "cut" : {
          "separator_before" : false,
          "separator_after" : false,
          "label" : "剪切",
          "action" : function(obj) {
           this.cut(obj);
          }
         },
         "copy" : {
          "separator_before" : false,
          "icon" : false,
          "separator_after" : false,
          "label" : "拷贝",
          "action" : function(obj) {
           this.copy(obj);
          }
         },
         "paste" : {
          "separator_before" : false,
          "icon" : false,
          "separator_after" : false,
          "label" : "粘贴",
          "action" : function(obj) {
           this.paste(obj);
          }
         }
        }
       }
      }
     },

//自定义文件夹和文件的图片样式
     "types" : {
      "valid_children" : [ "file" ],
      "types" : {
       "file" : {
        "icon" : {
         "image" : "../themes/img/page.gif"
        },
        "valid_children" : [ "default" ],
        "max_depth" : 2,
        "hover_node" : false
       },
       "default" : {
        "valid_children" : [ "default" ]
       }
      }
     },

//组装组件声明
     "plugins" : [ "themes", "json_data", "ui", "crrm",
       "contextmenu", "types" ]
    }).bind("select_node.jstree", function(event, data) {

//绑定选中事件,获得结点ID和名称
   //$("#txtSelectedValue").val(
   // "id=" + data.rslt.obj.attr("id") + " text="
   // + data.rslt.obj.children("a").text());
  }).bind(
    "click.jstree",
    function(event, data) {

//绑定单击事件,获得结点ID和名称
     var eventNodeName = event.target.nodeName;

     //如果是合拢或展开的图片结点,则返回
     if (eventNodeName == 'INS') {
      var nextNodeName = event.target.nextSibling.nodeName;
      if (nextNodeName == 'A')
       return;
     } else if (eventNodeName == 'A') {
      var $subject = $(event.target).parent();
      var n = $(event.target).parents('li');
      $("#txtSelectedValue").val(
        "id=" + n.attr('id') + " text="
          + $(event.target).text());
     }

//设置皮肤为经典
    }).jstree("set_theme", "classic");
 });

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无心的雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值