因为项目的需要,需要做一个树状菜单,并且节点是动态加载的,也就是只要点击父节点,就会加载该节点下的子节点。

  大致的效果实现如下图:

  

  

  以上的实现就是通过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动态加载节点的更多相关文章

  1. ligerui_ligerTree_007_ligerTree动态加载节点

    ligerui:ligerTree:动态加载节点: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码:json.txt ...

  2. dhtmlxtree动态加载节点数据的小随笔

    最近做了一个这个东西,颇有些感触,随笔记录一下自己的过程. 首先特别感谢:https://blog.csdn.net/cfl20121314/article/details/46852591,对我的帮 ...

  3. jsTree动态加载数据

    Views代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="view ...

  4. Easyui _treegrid 动态加载子节点

    <table id="dg" class="easyui-treegrid" title="数据字典列表" data-options= ...

  5. 记录Js动态加载页面.append、html、appendChild、repend添加元素节点不生效以及解决办法

    今天再优化blog页面的时候添加了个关注按钮和图片,但是页面上这个按钮和图片时有时无,本来是搞后端的,被这个前端的小问题搞得抓耳挠腮的! 网上各种查询解决方案,把我解决问题的艰辛历程分享出来,希望大家 ...

  6. (转)jQuery EasyUI Tree - TreeGrid动态加载子节点

    有时我们已经得到充分的分层树形网格(TreeGrid)的数据. 我们还想让树形网格(TreeGrid)按层次惰性加载节点. 首先,只加载顶层节点. 然后点击节点的展开图标来加载它的子节点. 本教程展示 ...

  7. 044. asp.net主题之三应用或禁用主题和动态加载主题

    1.为单个页面指定主题可以将@Page指令的Theme或StyleSheetTheme属性设置为要使用的主题名称, 代码如下: <%@ Page Theme ="MyTheme&quo ...

  8. highcharts 柱状图 动态加载

    highcharts柱状图动态加载 (1):导入样式 <script type="text/javascript" src="<%=request.getCo ...

  9. (转)高性能JavaScript:加载和运行(动态加载JS代码)

    浏览器是如何加载JS的 当浏览器遇到一个<script>标签时,浏览器首先根据标签src属性下载JavaScript代码,然后运行JavaScript代码,继而继续解析和翻译页面.如果需要 ...

随机推荐

  1. java读取properties配置文件的方法

    app.properties mail.smtp.host=smtp.163.com mail.transport.protocol=smtp import java.io.InputStream; ...

  2. OpenGL的视图变换、模型变换、投影变换、视口变换

    产生目标场景的过程类似于用照相机进行拍照: (1) 把照相机固定在三角架上,并让他对准场景从不同位置观察场景(视图变换) gluLookAt (2) 对场景进行安排,使各个物体在照片中的位置是我们所希 ...

  3. phalcon: router规则与解析,已经生成router的链接地址

    本人采用的是假分模块(目录),通过命名空间来进行模块分组的,非官方分组,所以在router是都会加上 namespace 信息,你也可适当的参考: 前提: /** * 注册命名空间 */ $loade ...

  4. 大S《美容大王》内容80%都是没用的东西

    揭20位明星真实人品 我在她大陆的企划公司工作过,见过她N次了,对人态度蛮不错的,而且很爱开玩笑,但感觉很假很抠门.只要一回公司她就黏着请她吃饭.她很主动很霸道,她和周渝民交往,原因之一就是周什么都听 ...

  5. Spring框架的反序列化远程代码执行漏洞分析(转)

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  6. 3D变形旋转

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. robot API笔记3

    robot.htmldata package 包编写HTML格式的输出文件. 这个包被认为是稳定的但不是公共API的一部分. Submodules robot.htmldata.htmlfilewri ...

  8. Spring事务的传播特性和隔离级别

    事务的几种传播特性1. PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务.如果没有事务则开启2. PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务 ...

  9. 第二周 WBS、NABCD查阅

    WBS WBS:工作分解结构(Work Breakdown Structure) 创建WBS:创建WBS是把项目可交付成果和项目工作分解成较小的,更易于管理的组成部分的过程. WBS是项目管理重要的专 ...

  10. hdu ---(4517)小小明系列故事——游戏的烦恼(Dp)

    小小明系列故事——游戏的烦恼 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...