概述:

前面主要是html数据,这里主要是json数组

1.格式

jsTree需要一个具体格式JSON数据,在标准的语法没有那个字段是必须的-而是那些是你需要的。请记住你可以获取任何你请求的其他属性,jsTree将会不会碰他们,你将有可能在随后使用它们。

为了改变节点的图标你可以是用属性icon。具体的字符串需要包含/的一个图片的url路径,你可以使用任何其它字符串应用类样式去修饰<i>元素,它将会被用呈现这个图标。你可以使用boolean 值false来jsTree在渲染节点时没有图标。

你可以设置一个节点的状态使用state属性,它值可以使如下值得组合:opened, selected, disabled.

li_attr和a_attr可以直接通过jQuery属性函数获取。

当使用AJAX设置children为false,jsTree将会将渲染这个节点为关闭状态,如果需要打开的时候需要发送额外的请求。

如何内部children都应该遵循相同的格式,或者是普通字符串(这个字符串作为普通文本和任何其它自动生成的)

  1. // Expected format of the node (there are no required fields)
  2. {
  3. id          : "string" // will be autogenerated if omitted
  4. text        : "string" // node text
  5. icon        : "string" // string for custom
  6. state       : {
  7. opened    : boolean  // is the node open
  8. disabled  : boolean  // is the node disabled
  9. selected  : boolean  // is the node selected
  10. },
  11. children    : []  // array of strings or objects
  12. li_attr     : {}  // attributes for the generated LI node
  13. a_attr      : {}  // attributes for the generated A node
  14. }

2.可选择JSON格式

如果你不想使用内部children的方式,你可以使用可选语法,每个节点需要包含两个必须字段:id和parent,没有children属性(其它都保持这个格式)

jsTree 将会自动构建这个层次关系,为表明一个节点应该是根节点可是设置parent属性为"#".

这个种方式大多数用于一次性渲染整棵树,这个数据存储在数据库之间有联结关系。

  1. // Alternative format of the node (id & parent are required)
  2. {
  3. id          : "string" // required
  4. parent      : "string" // required
  5. text        : "string" // node text
  6. icon        : "string" // string for custom
  7. state       : {
  8. opened    : boolean  // is the node open
  9. disabled  : boolean  // is the node disabled
  10. selected  : boolean  // is the node selected
  11. },
  12. li_attr     : {}  // attributes for the generated LI node
  13. a_attr      : {}  // attributes for the generated A node
  14. }

3.使用JSON

为了使用JSON来渲染一棵树,你需要使用$.jstree.defaults.core.data配置选项

这个希望格式为一个数组节点。每个节点应该是一个如上所描述的对象或者是一个简单的字符串(这种情况字符串被用来作为一个节点的文本替换自动生成的文本),任何内部子节点格式是一样的。

  1. $('#using_json').jstree({ 'core' : {
  2. 'data' : [
  3. 'Simple root node',
  4. {
  5. 'text' : 'Root node 2',
  6. 'state' : {
  7. 'opened' : true,
  8. 'selected' : true
  9. },
  10. 'children' : [
  11. { 'text' : 'Child 1' },
  12. 'Child 2'
  13. ]
  14. }
  15. ]
  16. } });

4.使用可选json格式

  1. $('#using_json_2').jstree({ 'core' : {
  2. 'data' : [
  3. { "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
  4. { "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
  5. { "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
  6. { "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
  7. ]
  8. } });

5.使用AJAX

你可以使用AJAX向服务器请求返回一个json数据来渲染树,这个格式如上所示,这里唯一不同就是JSON是不可见,它是服务器返回的。

为了使用这个特性,你需要使用$.jstree.defaults.core.data 配置选项

仅仅是使用标准jquery像AJAX配置和jstree将会自动做出一个AJAX请求而返回数据。

除了标准jQuery ajax选项,你可以提供data函数和url路径,这个功能将会运行当前的实例范围内,一个参数被通过表明这个节点被加载了,这个返回值将会用作各自的URL和data

如果你并不会返回json头部信息,至少设置数据类型 jQuery AJAX的选项为“json”

  1. $('#tree').jstree({
  2. 'core' : {
  3. 'data' : {
  4. 'url' : function (node) {
  5. return node.id === '#' ?
  6. 'ajax_roots.json' :
  7. 'ajax_children.json';
  8. },
  9. 'data' : function (node) {
  10. return { 'id' : node.id };
  11. }
  12. }
  13. });

6.使用函数

你可以提供一个函数,这个函数将会接受两个参数,节点加载和回调函数。

  1. $('#tree').jstree({
  2. 'core' : {
  3. 'data' : function (obj, cb) {
  4. cb.call(this,
  5. ['Root 1', 'Root 2']);
  6. }
  7. }});

jstree -- 使用JSON 数据组装成树的更多相关文章

  1. 利用nodejs读取数据库数据生成树结构的json数据

    在做后台管理界面的时候,几乎少不了的一个结构就是树形结构,用来做菜单导航: 那么,最希望的就是树结构的所有数据都是读取的数据库,而不是直接代码当中写死,那我们就一步一步来看: 一,建表 字段通常包括: ...

  2. iOS开发——XML/JSON数据解析

    NSJSONSerialization 接下来就正式开始.苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要 ...

  3. 静态页面中如何传json数据

    首页传递参数组装成json数据,再编码 var param="{type:'"+type+"',text:'"+select_text+"',sele ...

  4. 菜鸟笔记:node.js+mysql中将JSON数据构建为树(递归制作树状菜单数据接口)

    初学Web端开发,今天是第一次将所学做随笔记录,肯定存在多处欠妥,望大家海涵:若有不足,望大家批评指正. 进实验室后分配到的第一个项目,需要制作一个不确定层级树形菜单的数据接口,对于从来没实战编过程的 ...

  5. angular2^ typescript 将 文件和Json数据 合并发送到服务器(2.服务端)

    nodejs 中使用框架 express web框架 multer 文件接受 直接贴代码了,我就不解释了 "use strict"; exports.__esModule = tr ...

  6. 关于iOS中几种第三方对XML/JSON数据解析的使用

    Json XML 大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交换格式.一般来讲,我们会从网络获取XML或者Json格式的数据,这些数据有着特 ...

  7. Shell脚本处理JSON数据工具jq

    shell脚本如何方便地处理JSON格式的数据呢,这里介绍一个工具:jq 使用参数介绍:https://stedolan.github.io/jq/manual/ 官方教程简单翻译如下. 1.获取JS ...

  8. json数据在前端(javascript)和后端(php)转换

    学习目的:前后端数据交换   思路: json数据格式是怎么样? 后端各种语言怎么将自己内容转换成json格式的内容? 前端怎么接收json数据?有几种方式? js中怎么将json数据转换成js中的数 ...

  9. jsTree 插件Ajax数据

    完整代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta ...

随机推荐

  1. Apple Swift编程语言新手教程

    文件夹 1   简单介绍 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简单介绍 今天凌晨Apple刚刚公布了Swift编程 ...

  2. html5 虚拟键盘弹出挡住底部的输入框解决方案

    问题描述: 我们使用 h5 做移动网站开发时,如果文本框在页面的下方,当输入信息弹出的软键盘会将输入框挡住(Android 会有这个问题,IOS会自动将整个页面上移),IOS中软键盘关闭后,页面上移的 ...

  3. libXdmcp.so.6

    Traceback (most recent call last): File "/data/xiaole_dl_img/product.v.one.banner.fixedperiod.g ...

  4. HDU 5832A water problem

    大数 判断整除 /* *********************************************** Author :guanjun Created Time :2016/8/14 1 ...

  5. JavaScript倒计时类

    (function (){ var jtimer = function() { // init if(arguments.length >= 1) { this.setEndTime(argum ...

  6. Android原生音量控制【转】

    本文转载自:http://blog.csdn.net/u013082948/article/details/65630085 本文主要涉及AudioService.还是基于5.1.1版本的代码. Au ...

  7. Android 修改开机动画(bootanimation)【转】

    本文转载自:http://blog.csdn.net/u012301841/article/details/51598115 Android 系统自带的开机动画,是一个白色的 “android” 文字 ...

  8. openstack horizon 学习(2) navigation、dashboard、panels

    本章的主要内容是如何用horizon的navigation结构添加一个应用的面板. Horizon中提供了两种为应用添加panel的方法,一种是通过Pluggable Settings的方式,另一种是 ...

  9. android EditText如何使光标随着输入内容移动

    EditText 使光标随着输入内容移动的setSelection()

  10. struct框架

    配置文件struct-config.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE str ...