一、JStree的简单介绍
1.关于jstree

jsTree 使用了 jQuery 和 Sarissa,是一个是免费的但是设置灵活的,基于 JavaScript 跨浏览器支持的网页树形部件。

jsTree 支持三种数据源头:

预先定义好的 HTML -嵌套的列表结构

JSON

XML

jsTree 的主要功能有:

同步导入 – 只需要提供一个 URL,就会去请求数据(只适合 JSON 和 XML 数据形式)。

支持打开,关闭,重命名,创建,删除节点(通过预先定义好的规则)

支持多种回调函数(onchange, oncreate, ondelete, onload, 等等)

支持拖拉

支持多重选择

支持多种语言

支持主题(可以修改图标,大小和背景等等)

可以支持动态打开和关闭(configurable)

可选的快捷键导航

支持多个树形部件

另外还可以做为 jQuery 插件。

官方主页:http://www.jstree.com/

jstree在goolge code上的托管项目:

http://code.google.com/p/jstree/

二、JStree的简单用法

代码部分

HTML:

  1. <!--树-->
    引入的css:
    <link rel="stylesheet" type="text/css" href="/pcs9000/lib/common-css/css/style.min.css" />
  2. <div class="reason_list">
  3. <div id="treeview1" class="treeview">
  4.  
  5. </div>
  6. </div>

JS:

需要引入的js有

<script src="/pcs9000/lib/jquery/jquery.js"></script>
<script src="/pcs9000/lib/common-css/js/jstree.min.js"></script>
<script src="/pcs9000/gzdsy/monitor/resources/js/treepanel.js"></script>

treepanel.js:

  1. $(function () {
  2. var treeDate; //存放数据
    $.ajax({
  3. type:"get",
  4. url:"resources/js/getJson.json",
  5. dataType:"json",
  6. success:function(data){
  7. treeDate = data.data.treeData[0];
  8. $("#treeview1").jstree({ //创建树开始
  9. 'core' : {
  10. "multiple" : false,
  11. 'data': treeDate,
  12. 'dblclick_toggle': false //禁用tree的双击展开
  13. },
  14. "plugins" : ["search"]
  15. });
  16. }
  17. });
  18.  
  19. //tree change时事件
  20. $('#treeview1').on("changed.jstree", function (e, item) {
  21. $(this).find(".jstree-leaf .jstree-anchor").unbind("click").on("click",function(){
  22. nodeId = item.node.id;
  23. $("#AjaxLoading").remove();
  24. $.ajax({
  25. type:"get",
  26. url:"resources/js/getJson.json",
  27. dataType:"json",
  28. beforeSend: function(XMLHttpRequest){
  29. ShowLoading();
  30. },
  31. success:function(data){
  32. },
  33. complete: function(XMLHttpRequest, textStatus) {
  34. $("#AjaxLoading").remove();
  35. },
  36. error:function(){
  37. alert("加载数据失败!");
  38. }
  39.  
  40. });
  41. });
  42.  
  43. });
  44. //加载动画
  45. function ShowLoading(){
  46. $(".rightIntent").append('<div id="AjaxLoading" class="showbox">'+
  47. '<div class="loadingWord">'+
  48. '<img src="resources/img/waiting.gif">加载中,请稍候...</div></div>');
  49. }
  50.  
  51. //jstree单击事件
  52. $("#treeview1").bind("select_node.jstree", function (e, data) {
  53. if(data.node.id !=1 ){ //排除第一个节点
  54. data.instance.toggle_node(data.node); //单击展开下面的节点
  55. }
  56.  
  57. });
  58. //输入框输入定时自动搜索
  59. var to = false;
  60. $('#search_ay').keyup(function () {
  61. if(to) {
  62. clearTimeout(to);
  63. }
  64. to = setTimeout(function () {
  65. $('#treeview1').jstree(true).search($('#search_ay').val());
  66. }, 250);
  67. });
  68.  
  69. });

三:换肤功能

JsTree的更多相关文章

  1. jsTree简单应用Demo

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  2. JSTREE 实现AJAX重载入时刷新所有节点树

      $().ready(function() { var tree = $('#tree'); tree.jstree({ 'core': { data: null } }); $("#xr ...

  3. 【笔记】jstree插件的基本使用

    官网地址:https://www.jstree.com/ json返回参数格式:推荐第二种方式 不需要在重新拼接返回格式 不刷新页面重新初始化 jstree时使用:$.jstree.destroy() ...

  4. 【JSTREE】 复选框默认选中【总结】

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  5. JavaScript JsTree实例

    var RightTree= function () { }; RightTree.prototype = { //初始化权限树 InitRightTree: function () { $.ajax ...

  6. JsTree实现简单的CRUD

    现在需要将省市县区域这块搞成树状图的形状,由于项目使用的AngularJS+ABP+WebAPI各个模块之间数据传输形式是json格式,那么对于JsTree来说就方便很多了,只需要将json数据搞成我 ...

  7. 基于jstree的 对混乱的 命名系统进行归类的 计算机软件

    本人现在就职于一家加拿大东部餐饮连锁公司的IT部门,公司旗下有4个品牌,280多家餐厅. 所有的餐厅都使用maitred 的pos软件来处理收银结账. 公司总部使用business object 对m ...

  8. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...

  9. 利用jstree插件轻松构建树应用

    最近完成了项目中的一个树状应用,第一次接触了jstree这个插件,总的来说它的官方文档还是比较详细的,但是在使用过程中还是出现了一些问题,下面我就来谈谈这款插件的使用和心得. 首先项目需要构建一棵树, ...

  10. jstree动态生成树

    前篇文章简单介绍了静态生成树,这篇文章将通过后台把数据通过json形式传到前台,进行动态生成树. 本篇的程序所用框架为Spring MVC,可以很方便的通过controller层传json到前台. 前 ...

随机推荐

  1. [转][Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

     转自:http://blog.csdn.net/qiujuer/article/details/39754517?utm_source=tuicool [Android][Android Studi ...

  2. 设置SQLServer的行版本控制隔离级别

    1.--查询数据库状态 select name,user_access,user_access_desc,snapshot_isolation_state,snapshot_isolation_sta ...

  3. Oracle的日期时间范围查询

    Oracle日期时间范围查询 Sql代码 /* 日期时间范围查询 */ ---------- 创建日期时间测试表-------------------------------------------- ...

  4. .NET中通過OUTLOOK發送附件內容

    最近碰到一個發送郵件附件的問題,隨便幾下來,方便以後學習. string[] files = System.IO.Directory.GetFiles(@"~/UploadData" ...

  5. angularjs与require的集成摘抄

    基于requireJS和angularJS的前端技术架构 :http://blog.163.com/liuyong_xiaxia/blog/static/17435525520156341446981 ...

  6. Hibernate 一对多 保存和修改数据

    Student和Sclass表,Student外键cid是Sclass的cid create table sclass( cid ) primary key, cname ) )go create t ...

  7. debuggee python

    my_debugger_defines.py #encoding:utf-8 from ctypes import * from sys import version as py_ver # In p ...

  8. lua 操作中文字符串之截取和长度竖排显示

    前言 在游戏中,我们经常会遇到汉字的多行显示,比如名字竖行显示等.如下图: 为了实现上面的效果,lua实现分行是通过  \n  实现的,所以我们需要取出汉字,然后插入 \n 实现分行效果.还有一种就是 ...

  9. Flyer(二分 HDU4768)

    Flyer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  10. noi 2728 摘花生

    题目链接: 很像上一题,加上自己本身,选最优值. http://noi.openjudge.cn/ch0206/2728/ http://paste.ubuntu.com/23402493/