阿发原创,博客地址:http://blog.csdn.net/u012954072

本文介绍JQuery插件–JStree的使用,JStree用于生成树形目录。先贴一张简单的效果图并输出当前节点的名称

所需资源下载:http://download.csdn.net/detail/u012954072/9670907

JStree官网:https://www.jstree.com

官网的文档讲比较详细,如果能打开建议直接看官网的文档。 如果不能打开,可以参考下面的使用教程:

1.需要包含的资源

a. 需要jstress定义的样式

样式文件在dist/themes/default/style.min.css 中,所以html页面中需要添加代码

<link rel="stylesheet" href="../dist/themes/default/style.min.css" />

需要包含CDNJS的css文件:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />

b. 需要使用jQuery1.9.0以上:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>

c. 包含JStree的js文件:

<script src="dist/jstree.min.js"></script>

使用CDNJS的代码为:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>

2.实现最简易的JStree例子

JStree需要使用一个div当做其容器并需要id属性用于生成JStree :
<div id="jstree_div"> </div>
JStree的节点信息存储在<ul> <li> </li> </ul>中,需要多层的时嵌套多层`<ul><li> </li></ul>即可。

<ul><li>Root node 1<ul><li id="child_node_1">Child node 1</li><li>Child node 2</li></ul></li><li>Root node 2</li></ul>

   在$(document).ready(function(){ }) 中使用JStree生成命令: $('#jstree').jstree();
jstree支持很多监听事件,这里设置一个当选的节点发生变化时输出选中的节点的内容:

$('#jstree').on("changed.jstree", function (e, data) {alert(data.instance.get_node(data.selected).tex)t;   //存储当前选中的区域的名称});

以下是完整的代码

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>jsTree test</title><!-- 2 load the theme CSS file --><link rel="stylesheet" href="../dist/themes/default/style.min.css" />
</head>
<body><!-- 3 setup a container element --><div id="jstree"><!-- in this example the tree is populated from inline HTML --><ul><li>Root node 1<ul><li id="child_node_1">Child node 1</li><li>Child node 2</li></ul></li><li>Root node 2</li></ul></div><!-- 4 include the jQuery library  你自己的jquery.js文件位置--><script src="../js/jQuery.js"></script><!-- 5 include the minified jstree source  你自己的jstree.js文件位置--><script src="../js/jstree.min.js"></script><script>$(function () {// 6 create an instance when the DOM is ready$('#jstree').jstree();// 7 bind to events triggered on the tree$('#jstree').on("changed.jstree", function (e, data) {alert(data.instance.get_node(data.selected).text);      //输出当前选中的区域的名称});</script>
</body>
</html>

3.JStree自定义触发事件和图标

这部分讲如何使用一些常用的属性、使用JStree监听的事件。
  常用属性: 
  如果在<li>标签中添加class="jstree-open" 则节点是默认打开,添加` class="jstree-clicked" 则节点是处于被选中的状态。效果如下所示:

  

 还可以使用 data-jstree  来设置节点的特征

<li data-jstree='{"opened":true,"selected":true, "disabled":true,"icon":"../img/liya.img"}' >

  opened:打开,select:选中,disabled:废弃,icon:设置节点名称前面的图标,可以使用矢量图标,如iconfont之类的。
  修改图标的效果如下所示:
          
监听事件的使用方法:
  上面的示例中已经使用JStree监听的事件–节点变化事件:changed.jstree。
  JStree可以监听的事件: https://www.jstree.com/api/#/?q=.jstree%20Event&f=changed.jstree
  JStree官方API中表示可以监听的事件的颜色如下所示。
         

$('#[JStree的ID]').on('[监听的是事件]', function (e, data) {//需要进行的操作
})

查看官网的中的changed.jstree Event 事件的介绍如下所示:

  

  这里来继续使用监听的事件来改进最初版的JStree, 建立起JStree之后可以发现如果要展开JStree只能点击前面的小三角才能展开文件,用户体验太差,这里改进的方法是当点击节点的时候就展开,当节点被选中的时候就打开节点下的信息。
  查阅API中有个获取实例的方法:
  

$('#tree2').jstree(true); // get an existing instance (will not create new instance) 

  
  然后查找API中又有一个打开或关闭节点的方法:
  
         

则在2中简单中的例子中加上以下代码就可以实现点击节点名称即可打开或关闭节点:

//选中节点的时候打开或关闭节点$('#jstree').on('changed.jstree', function (e, data) {$('#jstree').jstree(true).toggle_node(data.selected);}) 

4.AJAX和JSON数据

JStree还可以使用ajax和json数据。
  使用ajax时的数据格式和之前的一样,都是使用<ul><li>,唯一不同之处是HTML代码不是在容器中而是在服务器中,只需要在$.jstree.defaults.core.data 的url中添加html内容即可:

$('#tree').jstree({'core' : {'data' : {'url' : 'ajax_nodes.html','data' : function (node) {return { 'id' : node.id };}}
});
// Example AJAX response:
<ul>
<li>Node 1</li>
<li class="jstree-closed">Node 2</li>
</ul> 

  JSON数据: json数据需要特定的格式,一种是指定子节点的格式,一种是指定父节点的id的格式,这连个格式都可以设置节点的通用属性:text、icon、opened、disabled、selected。不需要icon时,可以指定icon为false。
  指定子节点的格式如下所示:

// Expected format of the node (there are no required fields)
{id          : "string" // will be autogenerated if omittedtext        : "string" // node texticon        : "string" // string for customstate       : {opened    : boolean  // is the node opendisabled  : boolean  // is the node disabledselected  : boolean  // is the node selected},children    : []  // array of strings or objects  这里面的格式和这个格式一样li_attr     : {}  // attributes for the generated LI nodea_attr      : {}  // attributes for the generated A node
} 

效果如下所示:

    
    
指定父节点id的格式如下所示:

// Alternative format of the node (id & parent are required)
{id          : "string"// requiredparent      : "string"// requiredtext        : "string" // node texticon        : "string" // string for customstate       : {opened    : boolean  // is the node opendisabled  : boolean  // is the node disabledselected  : boolean  // is the node selected},li_attr     : {}  // attributes for the generated LI nodea_attr      : {}  // attributes for the generated A node
} 

父节点ID的效果:

 stree简单使用用以上即可,jstree中有许多事件、属性,大家能看官网的直接参考官网。

  在页面任何地方获取选中的节点的jquery代码如下:

$('#jstree').jstree(true).get_selected(true)[0]
上面这种方式获取的的是一个jstree对象,当使用html、json方法给节点设定了id、text值时,可以使
 $('#jstree').jstree(true).get_selected(true)[0].id、$('#jstree').jstree(true).get_selected(true)[0] .text  
获取当前对象的id值和text值。 以上就是jstre的一些基本的使用方法,对于一些简单应用基本可以满足需求了。

jstree使用教程相关推荐

  1. JsTree 最详细教程及完整实例

    JsTree 最详细教程及完整实例 JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可).Jstree技持Html 或 json格式的的 ...

  2. w3cschool教程 - jQuery插件总结

    w3cschool教程 jQuery插件总结 http://www.w3cschool.cc/jquery/jquery-plugin-validate.html 一 jQuery Validate ...

  3. jsTree 组件官方文档学习

    jsTree 组件官方文档学习 什么是 jsTree 根据jsTree官网的解释:jsTree 是一个jquery 插件, 提供交互式树.它是完全免费的,开源的,并根据MIT许可进行分发.jsTree ...

  4. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

  5. mysql修改校对集_MySQL 教程之校对集问题

    本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...

  6. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程

    原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...

  7. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

  8. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

  9. Google Colab 免费GPU服务器使用教程 挂载云端硬盘

    一.前言 二.Google Colab特征 三.开始使用 3.1在谷歌云盘上创建文件夹 3.2创建Colaboratory 3.3创建完成 四.设置GPU运行 五.运行.py文件 5.1安装必要库 5 ...

最新文章

  1. UICollectionView的基本使用(1)
  2. 大剑无锋之post那么多优点,为什么还用get
  3. Ajax异步与JavaScript的一些初浅认识
  4. java token redis生成算法_Redis实现单点登录
  5. CIO,马上就没有线下灾备了,不要做最后一个
  6. Matlab实用代码——定位文件位置,自动导入文件
  7. django开发-在Docker中部署django项目
  8. ASP.NET服务器控件之视图状态
  9. 微信小程序反编译获取前端代码
  10. java 1.5 jdk_jdk1.5安装及配置
  11. 第11章 Docker 中 Gitlab 的安装与配置
  12. 2021我的前端开发年度总结
  13. 浏览器下载集合(最新版本)
  14. Mac环境下Tron 部署教程
  15. UKey税务系统开票及打票流程
  16. 基于C#实现的小型动物识别推理系统
  17. C++类的六个特殊成员函数20220226
  18. winpe修复计算机无法启动,PE修复系统启动故障的详细教程
  19. matlab 双目 景深,双照相机景深分析的思路
  20. 一个优秀的前端都应该阅读这些文章

热门文章

  1. java中的接口是什么?
  2. 2021大连高考成绩查询,2021年大连高考各高中成绩及本科升学率数据排名及分析...
  3. 使用git更新仓库时出现unable to access ‘https://github.com/xxx: Failed to connect to github.com port 443: Time
  4. 50天50个页面-DAY1-Expanding Card
  5. Android利用Socket与硬件通信之智能家居APP
  6. 关于ruoyi验证码无法显示的问题
  7. (1)网站搭建BT面板的安装步骤
  8. 有趣的灵魂用有趣的屏保SadMac.saver
  9. 电脑派位系统(新生入学摇号) v2016
  10. 386页《Python深度学习》电子书及源码下载