【JSTREE】动态加载子节点

js中初始化jstree

$(‘#contact-org‘).jstree({
                    "data" : {
                        "dataType": ‘json‘,
                        "url":function(node){
                            return ctxPath + "/v-contact?queryOrg";
                        },
                        "data":function(node){
                            return {"id" : node.id};
                        }
                    }
                }
}  

返回的json数据,对应用于树节点的数据结构

 {
    "attr" : {"id":"标示 "},
    "data" :{"title": " 显示的标题 "
           ,"attr":{"href" :"可以自定义一些值,在UI 解析"
                           ,"class": "jstree-search"//可以预先在后台给节点设置样式
                }
              ,"icon":" 图标的地址  "
             },
      "state" : "closed" 或"open",
          "children":[{子节点1},{子节点2}]
}  

实现子节点动态加载的关键所在:

返回的数据中将children设置成布尔型true或者false。

当设置成true时,点击该树节点,jstree就会进行一次请求,请求的url和data配置就是初始化jstree中的那些。

当设置成false时,jstree就将该节点当成叶子节点

这样子就实现了jstree的动态加载子节点的功能。

时间: 2024-08-13 22:20:06

【JSTREE】动态加载子节点的相关文章

EasyUI treegrid 实现点击父节点加载子节点

今天在项目中遇到问题,要实现 EasyUI   treegrid 实现点击父节点加载子节点 第一反应是去百度一下,谷歌一下,发现网上的回答不是懒加载就是在onBeforeExpand调用append方法 我决定使用第二种方法,定义treegrid的onBeforeExpand方法,在里面调用appen方法. 然而当我兴冲冲的运行的时候,出问题了, Firefox出现too much recursion异常提示 在网上看了一下这个问题的出现原因,大家都说是,非法使用了js关键字,可是我看了几遍代码

动态加载TreeView时让TreeView节点前显示加号

解释下标题,我这里通过webservice获取数据并动态加载TreeView节点,那么某个节点展开前它是没有子节点的,那么它就不显示加号,这样会让用户误以为此节点不能展开.我是这样做的,每次创建节点a时,默认为它创建一个子节点b(随便给个名字就行,假设为"呵呵"),那么创建的节点a就有了子节点b,也就会显示加号了,等展开节点a时,再把刚才默认创建的子节点b移除就可以了,删除方法是先判断展开的节点a是否有一个子节点并且名字为"呵呵",如果为真则删掉. 当然这样做导致有

ztree插件动态加载节点

1.ztree官网首页下载所需zip,下载方式为 GitHub 方式下载 HTTPS : https://gitee.com/zTree/zTree_v3.git SSH : [email protected]:zTree/zTree_v3.git 2.在jsp页面中引入 js.css文件 <link rel="stylesheet" href="zTreeStyle/zTreeStyle.css" type="text/css">

ExtJS 动态加载树treepanel

先来看看效果: 一.新建一个TreeStore,并添加根节点 Ext.define('Demo1.store.TreeDemoStore', { extend: 'Ext.data.TreeStore', root: { text: '目录树', id: 0 } }); 二.在view中添加treepanel,绑定TreeDemoStore Ext.define('Demo1.view.MyViewport', { extend: 'Ext.container.Viewport', initCo

ExtJS 创建动态加载树

Ext 中导航树的创建有两种方式:1.首先将所有的数据读出来,然后绑定到前台页面.2.每点击一个节点展开后加载子节点.在数据量比较小的时候使用第一种方式加载的会快一些,然而当数据量比较大的时候,我还是建议使用第二种方式的.这里我就来介绍一下第二种树的展示方式. 源码奉上: 1 //创建model 2 Ext.define("treeModel",{ 3 extend:"Ext.data.Model", 4 fields:["OUID","

实现类似微博、QQ空间等的动态加载

微博.QQ空间等的动态加载方式属于滚屏加载技术,获取当前滚动条位置来触发onscroll()函数,向服务器发起请求,将请求得到的新的数据动态加载在页面上 本文利用该原理实现了动态加载,但不是检测当前滚动条位置来触发函数,而是由按钮事件触发,因此更简单一些. 走过的弯路 1) 将目前读取到的数据库中的位置存放在session中,当要加载更多的时候,去session中获得该值,动态加载后修改session中的值 错误原因:session是有缓存的,如果停留在当前页面,得到的值还是一开始的sessio

easyui树动态加载参考

这篇文章是拷贝的,多谢原作者 友情连接:http://www.jb51.net/article/28771.htm var treeTitle = '选择列表'; var treeUrl = '../DataAshx/getTreeNode.ashx?pid=-1'; var nodeExp = false; var nodekeep = ""; var rows; var noinf = 0; $(function () { $('#treewindow').window({ tit

JQuery/JS插件 jsTree加载树,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点

jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="plugins1"></div> <link

ligerui_ligerTree_007_ligerTree动态加载节点

ligerui:ligerTree:动态加载节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt [ { text: '节点1', children: [ { text: '节点1.1' }, { text: '节点1.2' }, { text: '节点1.3', children: [ { text: '节点1.3.1' ,children: [ { text: '节点1.3.1.1' },