使用jsTree动态加载节点
因为项目的需要,需要做一个树状菜单,并且节点是动态加载的,也就是只要点击父节点,就会加载该节点下的子节点。
大致的效果实现如下图:


以上的实现就是通过jsTree实现的,一个基于JQuery的树状菜单插件,支持html,json,xml三种数据源,支持自定义主题,应该说是一个很强大的工具,现在我就把相关的代码,也是最常用的代码贴出来供大家参考。
jsTree官网地址:http://www.jstree.com/
以下为代码片段:
按我自己的理解方式,我定义了两种初始化方式,数据源都是采用的html,以下为详细的使用过程。
第一种:使用默认的html元素初始化jsTree(本地初始化,无需动态加载)
1)定义div容器
<div id="jsTree">
<ul>
<li>
<a href="#">node1</a>
<ul>
<li>
<a href="#">node1</a>
</li>
</ul>
</li>
<li>
<a href="#">node2</a>
</li>
</ul>
</div>
2)初始化jsTree
$(document).ready(function(){
$("#jsTree").jstree({
"themes" : {
"theme" : "apple",
},
"plugins" : [ "themes", "html_data", "ui"]
});
});
第二种:使用自定义或给定的html元素(作为父节点)初始化jsTree
1)定义div容器
<div id="jsTree"><div>
2)初始化jsTree
$(document).ready(function(){
var root = $("#root").html();
$("#jsTree").jstree({
"themes" : {
"theme" : "apple", //定义主题风格,此处为苹果系统风格
},
"html_data":{
"data":"<li class="jstree-closed" id=""><a href="#">node1</a></li>",//自定义用于初始化的父节点,此处默认为关闭状态,class属性值“jstree-closed”指定
"ajax":{ //打开父节点时,将会触发ajax请求,以用来加载该父节点下的子节点
"url":"", //用于获取子节点的链接地址
"data":function(n){ //请求上述链接地址返回的html数据,结果格式为"<li><a href="#">node_1</a></li>",可以含有多个li元素(也就是所需要的多个字节点)
return {
"configId":n.attr("id") //父节点id,用于获取子节点
};
}
}
},
"plugins" : [ "themes", "html_data" ,"ui"] //定义jsTree中需要使用的插件
});
});
以上为我个人的使用体验,仅供参考
使用jsTree动态加载节点的更多相关文章
- ligerui_ligerTree_007_ligerTree动态加载节点
ligerui:ligerTree:动态加载节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt ...
- dhtmlxtree动态加载节点数据的小随笔
最近做了一个这个东西,颇有些感触,随笔记录一下自己的过程. 首先特别感谢:https://blog.csdn.net/cfl20121314/article/details/46852591,对我的帮 ...
- jsTree动态加载数据
Views代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="view ...
- Easyui _treegrid 动态加载子节点
<table id="dg" class="easyui-treegrid" title="数据字典列表" data-options= ...
- 记录Js动态加载页面.append、html、appendChild、repend添加元素节点不生效以及解决办法
今天再优化blog页面的时候添加了个关注按钮和图片,但是页面上这个按钮和图片时有时无,本来是搞后端的,被这个前端的小问题搞得抓耳挠腮的! 网上各种查询解决方案,把我解决问题的艰辛历程分享出来,希望大家 ...
- (转)jQuery EasyUI Tree - TreeGrid动态加载子节点
有时我们已经得到充分的分层树形网格(TreeGrid)的数据. 我们还想让树形网格(TreeGrid)按层次惰性加载节点. 首先,只加载顶层节点. 然后点击节点的展开图标来加载它的子节点. 本教程展示 ...
- 044. asp.net主题之三应用或禁用主题和动态加载主题
1.为单个页面指定主题可以将@Page指令的Theme或StyleSheetTheme属性设置为要使用的主题名称, 代码如下: <%@ Page Theme ="MyTheme&quo ...
- highcharts 柱状图 动态加载
highcharts柱状图动态加载 (1):导入样式 <script type="text/javascript" src="<%=request.getCo ...
- (转)高性能JavaScript:加载和运行(动态加载JS代码)
浏览器是如何加载JS的 当浏览器遇到一个<script>标签时,浏览器首先根据标签src属性下载JavaScript代码,然后运行JavaScript代码,继而继续解析和翻译页面.如果需要 ...
随机推荐
- Sqlserver_insert语法
1. INSERT INTO SELECT 通过 SQL,您可以从一个表复制信息到另一个表. INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中. 我们可 ...
- 20160805_CentOS6_控制台切换
1. Ctrl + Alt + F1~F6 Ctrl + Alt + F1 是 图形界面(如果装了的话),后面的是 控制台界面 2. 3.
- TCP 连接建立和断开,以及状态转换
1. TCP报文结构 TCP是一种可靠.面向连接.全双工的传输层协议,其报文格式如下所示: 源端口.目的端口:16位长.标识出远端和本地的端口号. 顺序号:32位长.表明了发送的数据 ...
- 在应用中更新App版本
在应用中, 为了提高用户体验, 会提供更新版本的功能. 那么如何实现呢? 我写了一个简单的Demo, 说明一下, 需要注意几个细节. 使用了Retrofit和Rx处理网络请求. Github下载地址 ...
- as中的陷阱
一.DisplayObject 1.有关width和height 对于一个对象A, 如果您设置了 width 属性,则 scaleX 属性会相应调整,并且会一直保存下来.尤其要注意的是如果A没有任何内 ...
- OOAD与UML笔记
UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OO ...
- servlet的配置和上下文
一.Servlet配置对象(ServletConfig):Servlet初始化时,容器调用其init(ServletConfig)方法,传递该对象. 1.获得对象方法: (1).直接使用getServ ...
- GitHub学习资料
GitHub账户注册注册了有一年多了(Joined on 13 Apr 2015),一直以来都是本地命令行上传到内网的Git服务器Gitlab.最近正好在学习新的编程语言,所以当初荒废的GitHub想 ...
- C类型
类型 32位 64位 char 1 1 short 2 2 int 4 4 long 4 8 指针 4 8 float 4 4 double 8 8 long 8 8 常用的基本 ...
- nyoj 115------城市平乱( dijkstra // bellman )
城市平乱 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市 ...