JsTree3.3动态加载树节点

jstree.js Tree控件 jsTree 是一个 基于 jQuery 的 Tree 控件。支持 XML,JSON,Html 三种数据源。提供创建,重命名,移动,删除,拖 " 放节点操作。可以自己自定义创建,删 除,嵌套,重命名,选择节点的规则。在这些操作上可以添加多种监听事件。 立即下载

【JsTree3.3学习笔记】动态加载树节点

Jstree介绍

jsTree是jQuery的插件,具有交互性的树。它是免费的、开源的、容易扩展、主题化和可配置的,它支持HTML、JSON数据源和数据加载。

资源准备

1、  下载jstree的相关文件,包括themes、jstree.js。

下载地址1:https://www.jstree.com/ 官方地址打开速度比较慢

下载地址2:https://github.com/vakata/jstreegithub速度快

2、  下载jquery,要求版本为1.9以上。

下载地址:http://jquery.com/

开发步骤:

1、  使用任意的开发工具创建一个web工程(本人使用的eclipse)。创建完成后拷贝相关文件到程序目录。见下图:


2、  在创建1.jsp,代码如下:

[html]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>JSTree</title>  
  8. <link rel="stylesheet" href="js/themes/default/style.min.css" />  
  9. <script src="js/jquery-1.9.1.min.js"></script>  
  10. <script src="js/jstree.min.js"></script>  
  11. </head>  
  12. <body>  
  13.     <div id="jstree_div"></div>  
  14.     <script type="text/javascript">  
  15.         $(function() {  
  16.             $('#jstree_div').jstree({  
  17.                 'core' : {  
  18.                     'check_callback': true,  
  19.                     "data" : function (obj, callback){  
  20.                             $.ajax({  
  21.                                 url : "/Webs/Services",  
  22.                                 dataType : "json",  
  23.                                 type : "POST",  
  24.                                 success : function(data) {  
  25.                                     console.info(data);  
  26.                                     if(data) {  
  27.                                         callback.call(this, data);  
  28.                                     }else{  
  29.                                         $("#jstree_div").html("暂无数据!");  
  30.                                     }  
  31.                                 }  
  32.                             });  
  33.                     }  
  34.                 },  
  35.                 "plugins" : [ "sort" ]  
  36.             }).bind("select_node.jstree", function(event, data) {  
  37.                 var inst = data.instance;  
  38.                 var selectedNode = inst.get_node(data.selected);  
  39.                 //console.info(selectedNode.aria-level);  
  40.                 var level = $("#"+selectedNode.id).attr("aria-level");  
  41.                 if(parseInt(level) <= 3){  
  42.                     loadConfig(inst, selectedNode);  
  43.                 }  
  44.             });  
  45.         });  
  46.         function loadConfig(inst, selectedNode){  
  47.               
  48.             var temp = selectedNode.text;  
  49.             //inst.open_node(selectedNode);  
  50.             //alert(temp);  
  51.             $.ajax({  
  52.                 url : "/Webs/LoadConfig",  
  53.                 dataType : "json",  
  54.                 type : "POST",  
  55.                 success : function(data) {  
  56.                     if(data) {  
  57.                        selectedNode.children = [];  
  58.                        $.each(data, function (i, item) {  
  59.                                 var obj = {text:item};  
  60.                                 //$('#jstree_div').jstree('create_node', selectedNode, obj, 'last');  
  61.                                 inst.create_node(selectedNode,item,"last");  
  62.                        });  
  63.                        inst.open_node(selectedNode);  
  64.                     }else{  
  65.                         $("#jstree_div").html("暂无数据!");  
  66.                     }  
  67.                 }  
  68.             });  
  69.         }  
  70.     </script>  
  71. </body>  
  72. </html>  

3、  创建后台的树初始化的servlet,命名为Services,具体代码如下:

[java]  view plain  copy
  1. package com.wisdom.test;  
  2.   
  3. import java.io.IOException;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.   
  9. /** 
  10.  * Servlet implementation class Services 
  11.  */  
  12. public class Services extends HttpServlet {  
  13.     private static final long serialVersionUID = 1L;  
  14.          
  15.     /** 
  16.      * @see HttpServlet#HttpServlet() 
  17.      */  
  18.     public Services() {  
  19.         super();  
  20.     }  
  21.   
  22.     /** 
  23.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
  24.      */  
  25.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  26.         response.setCharacterEncoding("UTF-8");  
  27.         response.setContentType("application/json; charset=utf-8");  
  28.         response.getWriter().write("[\"Simple root node\",{\"text\":\"Root node 2\",\"children\":[\"Child 1\",\"Child 2\"]},{\"text\":\"Root node 1\",\"children\":[\"Child 1\",\"Child 2\"]}]");  
  29.         //response.getWriter().append("Served at: ").append(request.getContextPath());  
  30.     }  
  31.   
  32.     /** 
  33.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
  34.      */  
  35.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  36.         doGet(request, response);  
  37.     }  
  38.   
  39. }  

4、  创建后台的点击某个节点动态加载子节点数据的的servlet,命名为LoadConfig,具体代码如下:

[java]  view plain  copy
  1. package com.wisdom.test;  
  2.   
  3. import java.io.IOException;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.   
  9. /** 
  10.  * Servlet implementation class LoadConfig 
  11.  */  
  12. public class LoadConfig extends HttpServlet {  
  13.     private static final long serialVersionUID = 1L;  
  14.          
  15.     /** 
  16.      * @see HttpServlet#HttpServlet() 
  17.      */  
  18.     public LoadConfig() {  
  19.         super();  
  20.     }  
  21.   
  22.     /** 
  23.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
  24.      */  
  25.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  26.           
  27.         //response.getWriter().append("Served at: ").append(request.getContextPath());  
  28.           
  29.         response.setCharacterEncoding("UTF-8");  
  30.         response.setContentType("application/json; charset=utf-8");  
  31.         response.getWriter().write("[\"Child01\",\"Child02\",\"Child03\"]");  
  32.     }  
  33.   
  34.     /** 
  35.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
  36.      */  
  37.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  38.         doGet(request, response);  
  39.     }  
  40.   
  41. }  

5、  运行结果如下,一个动态加载的树结构就出来了。


总结一下

本示例主要使用的是Jstree的如下功能:

Ø  data属性使用异步的ajax调用后台获取到json数据格式,再赋值给data属性的方式来实现异步加载树节点。

Ø  bind属性用来绑定对树节点的各种操作,本示例主要使用的是select_node操作,在绑定事件中获取当前被选中的节点以及当前树的实例,用于后续的在选中节点中添加子节点的操作。

Ø  check_callback属性这个是boolean类型的变量,用来确定当用户试图修改树的结构时的操作是否被允许。当变量值为“true”时,所有操作,如创建,重命名,删除,移动或复制等都是允许的,否则都是被禁止的,所以本示例中要实现选择某个节点后动态加载其子节点的操作必须把该属性设置成true。

Ø  create_node方法这个方法是用来动态创建树节点的。方法简介

原型  create_node : function (par, node, pos, callback,is_loaded)

参数说明

l  par  父节点,也就是要在那个节点下创建其子节点,如果需要创建的是父节点,传递"#"或“null”

l  node 子节点的数据,可以是json格式,或者是一个节点的字符串

l  pos   子节点插入的位置,可以取值为"before" 、"after" 、“first”、”last”,默认为last

l  callback 节点创建完成后的回调函数

l  is_loaded 是否检查父节点成功地加载,取值true、false

Ø  aria-level属性标识当前选择的节点的级别,也就是树的层级,这个可以控制树的层级,本示例中控制了只能动态加载3层。用法如下:

[javascript]  view plain  copy
  1. var level = $("#"+selectedNode.id).attr("aria-level");  
  2. if(parseInt(level) <= 3){  
  3.     loadConfig(inst, selectedNode);  
  4. }  
jstree-3.3.4 jquery树型结构插件jstree-3.3.4版本,多层树结构,动态加载等所需要的插件 立即下载

相关推荐

JSTree(js写的树形菜单,支持加载10000节点以上)

js树形菜单组件,主要解决大数据加载节点卡死问题。

【免费下载】 jsTree 项目下载及安装教程

jsTree 是一个基于 jQuery 的树形插件,提供了交互式的树形结构展示功能。它完全免费、开源,并且遵循 MIT 许可证。jsTree 易于扩展、可配置,支持 HTML 和 JSON 数据源、AJAX 和异步回调加载。它适用于不同的盒模型(content-box 或 border-box),可以作为 AMD 模块加载,并且内置了响应式移动主题,易于定制。jsTree 还支持拖放、键盘导航、内...

gitblog_01274的博客 787

jstree.min.js.zip

jstree是jQuery插件,这提供了交互树..绝对是免费。

tree.js初体验 | 大帅老猿threejs特训

之前对Web3D并不了解,最近跟着大帅的训练营,通过三天的学习,了解了blender的操作和three.js。下面就用几十行js代码实现一个带动态效果的甜甜圈。

qq_39094860的博客 6806

jsTree.v.1.0rc2

jsTree.v.1.0rc2 正在学习中

jstree-3.0.0.zip

Lifecycle.zip,生命周期AOP框架。启用Java语言描述增强状态图,

【JsTree3.3学习笔记】动态加载树节点

【JsTree3.3学习笔记】动态加载树节点 https://blog.csdn.net/viper2046/article/details/54923418 https://blog.csdn.net/viper2046/article/details/54923418 Jstree介绍 jsTree是jQuery的插件,具有交互性的树。它是免费的、开源的、容易扩展、主题化和可配置的,它...

小屁孩大帅-保密的博客 1719

RK3588开发板实战:从零开始移植Ubuntu 24.04(讯为SDK版)

本文详细介绍了如何在RK3588开发板上从零开始移植Ubuntu 24.04系统(讯为SDK版),涵盖开发环境准备、SDK解析、根文件系统定制、驱动适配、系统集成与烧录等全流程。通过实战案例,帮助开发者快速掌握RK3588开发板的系统移植技巧,适用于嵌入式开发与定制化Linux系统构建。

sand8的博客 436

jstree ajax php,jsTree AJAX异步加载,重载,刷新

折腾了一段时间,网上查了不少资料,总算实现了我要的效果jstree 版本:3.0.4html代码如下:Script 脚本代码:jQuery(function ($) {function InitTree() {var url = "xxxx?"+ "&_=" + Math.random();$('#tree').jstree({'core': {"multiple": true,"anim...

weixin_36187176的博客 493

OCCT(Open CASCADE Technology)入门-2.搭建开发环境

安装完成后,在【扩展】菜单下会看到【Qt VS Tools】菜单,打开子菜单【options】进入qt配置窗口。打开VS后随便创建一个新项目,进入开发环境主页,打开顶部菜单【扩展】->【管理扩展】打开管理扩展窗口。然后点击右下角【创建】,一路【next】即可,最后会进入到开发主界面,得到一个下面的工程结构。好了,到这里基本的环境我们已经安装好了,下面我们开始创建项目并配置开发环境。打开顶部菜单【项目】,点击最后一个菜单项【xxx属性】,进入项目配置界面。这里的配置一般不用改,我们看【Versions】

2501_91235145的博客 2875

TensorFlow_PyTorch实战:构建AI人工智能回归模型

回归分析是机器学习的核心任务之一,用于预测连续型目标变量(如房价、股票价格、用户留存时间等)。基础线性回归模型的数学原理与代码实现多项式回归模型的过拟合处理与正则化技巧自定义数据集加载与数据预处理流程动态图(PyTorch)与静态图(TensorFlow)的编程范式对比模型评估指标与可视化分析方法核心概念:对比两大框架的架构设计,解析回归模型核心组件数学原理:推导线性回归的假设函数、损失函数及优化算法算法实现:提供TensorFlow和PyTorch的完整代码示例项目实战。

AI天才研究院 1428

树节点数据改变,通过js刷新jstree树,提示找不到Render.jstree({。。。。。。}).jstree(true);方法的问题

使用公司封装的前端框架FUI,做树目录相关业务时,需求是更换树版本,jstree树节点数据改变,不重新加载页面的情况下,ajax异步请求,局部刷新整个树。 html: <%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%> <%@ taglib prefix="c" uri="...

cling_snail的博客 983

VASP实战:从非共线磁矩到自旋轨道耦合磁各向异性能的完整计算流程解析

本文详细解析了VASP中从非共线磁矩计算到自旋轨道耦合磁各向异性能的完整流程。通过实战案例和参数配置技巧,帮助研究者掌握非线性磁矩计算的关键步骤,包括SOC参数设置、文件传递逻辑以及磁各向异性能的精确提取方法,为材料磁性研究提供实用指导。

weixin_31102231的博客 407

jstree java实例_JsTree 最详细教程及完整实例

JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可)。Jstree技持Html 或 json格式的的数据, 或者是ajax方式的动态请求加载数据。1、支持基于HTML定义、Json、XML方式加载树节点2、支持拖放,动态增加、删除、重命名树节点3、支持复选框4、支持复制、剪切、粘贴树节点,动态刷新树5、提供足够的回调方法:6、此外,j...

weixin_33640562的博客 567

关于DHCP Option60的认识

<br />       最近在网络建设过程中,必须面对一个实际存在的问题:当只有一根线入户时,该如何解决CATV和宽带业务的共存呢?这时就要考虑用到DHCP Option60了,那么DHCP Option60到底是如何来实现业务区分的呢?<br />首先先来看下DHCP协议,在DHCP协议中,定义了一个option字段,该字段主要是用来扩展DHCP协议的,Option 60 (Vendor class identifier)是DHCP报文中的一个选项字段,code为60,可以标识终端类型,根据不同的终

luoyingchuan的专栏 7940

DP_AUX辅助通道介绍

DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。其中辅助通道(AUX)是一条独立双向半双工的传输通道,它也是一对差分信号线。其数据传输速率1Mbps,用来传输配置参数与指令。

cjie221的博客 5341

终极jsTree数据绑定实战指南:掌握AJAX、回调函数和懒加载的10个核心技巧

jsTree作为一款功能强大的jQuery树状插件,在数据绑定方面提供了多种灵活的方式。本文将深入解析jsTree数据绑定的三种核心方法:AJAX动态加载、回调函数处理和懒加载优化,帮助你快速掌握这个优秀的jQuery树插件的数据管理技巧。 ## 🔥 为什么选择jsTree进行数据绑定? jsTree是一个开源的jQuery树插件,支持HTML和JSON数据源,能够通过AJAX和异步回调实现

gitblog_01091的博客 509

基于PyTorch+Transformer实现谣言检测系统

本项目使用基于`PyTorch+Transformer`的谣言检测模型,将文本中的谣言事件进行连续向量化,通过一维卷积神经网络的学习训练来挖掘表示文本深层的特征,避免了特征构建的问题,并能发现那些不容易被人发现的特征,从而产生更好的效果。

优快云 精品推荐 6349

JsTree 最详细教程及完整实例

JsTree 最详细教程及完整实例 JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可)。Jstree技持Html 或 json格式的的数据, 或者是ajax方式的动态请求加载数据。 1、支持基于HTML定义、Json、XML方式加载树节点     2、支持拖放,动态增加、删除、重命名树节点     3、支持复选框   ...

yiding123的专栏 8460

2026最新华为OD机试新系统机考真题- 真题题库目录|全覆盖题库 + 逐点算法考点详解

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 2493

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jstree 简单使用

1. 引入 js  文件:

穆若的专栏 601

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jstree组件的使用详细教程,部分案例( PHP / fastAdmin )

jstree 插件的使用详细教程,加载树节点,右键菜单,添加编辑删除,。简介:JsTree是一个jquery的插件,它提交一个非常友好并且强大的交互性的树,并且是完全免费或开源的(MIT 许可)。Jstree技持Html 或 json格式的的数据, 或者是ajax方式的动态请求加载数据。

魍魉 1812

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jsTree的基本使用方法以及按需装载子节点

本文主要内容: 一、jsTree的基本使用方法; 二、按需装载子节点,即每次展开某节点时,才去服务器装载其子节点。 jsTree是基于jQuery的一个树形插件,该项目主页:http://www.jstree.com/

谢雨枫 1万+

JSTree的基本用法

描述:JSTree是一个独立的插件,可以运用到.net,java,php等各个地方。JSTree功能庞大,我也是刚接触不久,先暂时记录下基本用法,至于去如何用其它功能,相信会了基本的用法就可以知道如何去摸索了。网络上大多都是只给出在html页面的使用方法,至少我没找到前后台都有的

sanjiawan的专栏 9255

jstree-grid 使用指南

jstree-grid 使用指南 项目介绍 jstree-grid 是一个专为jstree设计的网格插件,它允许在树结构组件中扩展出表格功能。这使得用户能够展示节点数据于一个更结构化的视图中,每行对应树中的一个节点,且支持自定义列数以及利用任意节点属性来填充数据。版本演变至3.x系列带来了显著变化和改进,包括对AMD和CommonJS的支持,以及更好的布局管理。 项目快速启动 要迅速开始使用 js...

gitblog_00425的博客 939
上一篇: jstree的基本应用----记录
下一篇: Java中POI操作Excel常用方法
CSC_Cockroach
博客等级 码龄10年 7粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值