`

jstree学习

阅读更多
function getMenuIds(){  
   
//取得所有选中的节点,返回节点对象的集合
      var ids="";
      var nodes=$("#JsTree").jstree("get_checked"); //使用get_checked方法
      $.each(nodes, function(i, n) {
      ids += $(n).attr("id")+",";
      });
      alert(ids);

}


<script type=”text/javascript”>
$(function(){
var checkNodeIds = “11″.split(“,”);//需要选中的节点ID,为数组

$(“#JsTree”).bind(‘loaded.jstree’, function (e, data) {
$(“#JsTree”).jstree(“open_all”);
$(“#JsTree”).find(“li”).each(function() {
for (var i = 0; i < checkNodeIds.length; i++) {
if ($(this).attr(“id”) == checkNodeIds[i]) { //如果节点的ID等于checkNodeIds[i],表示要选中
//alert($(this).attr(“id”));
$(“#roleTree”).jstree(“check_node”, $(this));
break;
}
}
});
}).jstree({
“themes” : {
“theme” : “default”
},
“plugins” : ["themes", "html_data", "checkbox", "ui"]
});

});

//获取选中的节点ID
function checkForm(obj) {
var ids = checkForm2(obj);
alert(ids);
}
function checkForm2(obj) {
var ids =[];
$.jstree._reference($(“#roleTree”)).get_checked(obj).each(function(i, n) {
ids.push(n.id);
if ($(this).find(“> ul”).length > 0) {
ids.push(checkForm2($(this)));
ids.push(checkForm2($(this)));
}
});
return ids;
}
</script>


<div id=”JsTree” style=”text-align:left; background-color:#FFFFFF;”>
<ul>
<li id=”1″><a href=”#”>系统管理ID1</a>
<ul>
<li id=”11″><a href=”#”>系统管理ID11</a>
<ul>
<li id=”111″><a href=”#”>系统管理ID111</a></li>
<li id=”112″><a href=”#”>系统管理ID112</a></li>
</ul>
</li>
<li id=”12″><a href=”#”>系统管理ID12</a></li>
</ul>
</li>
<li id=”2″><a href=”#”>用户管理ID2</a>
<ul>
<li id=”21″><a href=”#”>普通用户ID21</a></li>
<li id=”22″><a href=”#”>特殊用户ID22</a></li>
</ul>
</li>
</ul>
</div>

为了同时获取半选中状态的节点ID,我们需要修改jquery.jstree.js,打开源文件,直接搜索get_checked或者定位到2319行,可以看到下面代码:


get_checked : function (obj) {
obj = !obj || obj === -1 ? this.get_container() : this._get_node(obj);
return obj.find(“> ul > .jstree-checked, .jstree-undetermined > ul > .jstree-checked”);
}

在return语句中,只返回了具有jstree-checked这个class的节点,即对于半选中状态(即class为jstree-undetermined)的节点并未返回。所以只需要将return语句修改为下面代码即可。


return obj.find(“> ul > .jstree-checked, > ul > .jstree-undetermined”);

具体效果可以见DEMO。

代码中,在tree上绑定loaded.jstree事件,当tree加载成功后,先将tree的所有节点都展开,并根据checkNodeIds来设置tree的节点的选中状态,checkNodeIds中即我们需要选中的节点的ID。
分享到:
评论

相关推荐

    jsTree大集合学习资料

    【jsTree大集合学习资料】是一份综合性的学习资源,主要涵盖了jsTree这款JavaScript库的各个方面。jsTree是一款强大的开源库,专用于在Web应用程序中创建交互式树型视图。它提供了丰富的功能,包括数据加载、节点...

    使用jsTree实现js树形结构

    **jsTree:构建前端树形结构的利器** jsTree 是一个强大的 JavaScript 库,专用于在 Web 页面上创建交互式的树形结构。它基于纯 JavaScript 编写,无需依赖其他库,因此对于初学者和有经验的开发者来说,都是一个...

    jsTree中文文档

    **jsTree 中文文档概述** jsTree 是一个流行的JavaScript库,用于在网页上创建交互式的树状视图。它主要用于组织结构化的数据,如文件系统、数据库...深入学习并熟练运用jsTree,将有助于提升网页的用户体验和交互性。

    jsTree大集合

    **jsTree学习与实践** 学习jsTree时,可以从以下几个方面入手: 1. **官方文档**:首先,详细阅读jsTree的官方文档,了解其基本用法、配置选项和API。 2. **示例代码**:压缩包中的示例代码可以帮助你快速上手,...

    手机端js tree

    在移动设备上,为了有效地展示层次结构数据,如文件系统、组织架构或导航菜单,"手机端js tree"成为了一种实用的解决方案。这个技术基于JavaScript,专为智能手机和平板电脑等移动端设备设计,提供了可自定义的树形...

    JsTree静态例子

    尽管这是一个静态示例,但了解JsTree的基础配置和API对于进一步学习动态数据加载和交互式操作至关重要。随着对JsTree理解的深入,你可以实现动态加载数据,比如从服务器获取节点信息,或者实现自定义的用户交互行为...

    jstree用法大集合

    你可以从中学习如何利用最少的代码实现一个功能完整的树形菜单,并理解`jstree`的基本配置选项。 3. **树形菜单显示集锦.rar** 这个压缩包可能包含了多种树形菜单的展示样式和效果,例如异步加载、拖放操作、搜索...

    jsTree实例,jsTree实例

    **jsTree 实例详解** jsTree 是一个流行的 JavaScript 库,专门用于创建、操作和展示交互式的树型结构。在 Web 开发中,它常被用于构建目录结构、组织数据或者构建导航菜单。jsTree 提供了丰富的 API 和多种主题,...

    jsTree树形菜单

    学习和使用jsTree时,你可以参考官方文档,了解详细配置选项和API。同时,通过查看示例代码,可以帮助理解如何实际应用这些功能。此外,社区论坛和Stack Overflow等在线平台也是解决疑问和获取帮助的好地方。 ### 5...

    bootstrap-JsTree简单dome

    Bootstrap JsTree是一个将jQuery库与Bootstrap框架相结合的插件,用于创建交互式的树形结构视图。这个简单Dome提供了一个快速入门的例子,展示了如何在网页中集成JsTree,并实现多选、单选、添加和删除节点等功能。...

    jsTree菜单大集合

    9. **示例代码**:压缩包中可能包含许多示例代码,这些代码展示了如何在实际项目中应用jsTree,是学习和理解jsTree的最佳实践。 10. **文档和教程**:如果集合包含官方文档或教程,这将帮助你更深入地了解每个功能...

    jstree1.0 demo

    **jstree1.0** 是一款基于JavaScript的开源库,专门用于创建、操作和展示树状数据结构。它在Web应用中广泛用于构建目录结构、文件系统浏览器、组织图表等。尽管标题提及的是"jstree1.0 demo",但实际提供的压缩包...

    jsTree 1.0 中文文档.zip

    学习和使用 jsTree 1.0,你需要了解以下关键概念和方法: - **初始化**:通过 JavaScript 代码设置配置选项,如数据源、主题、插件等,然后在HTML元素上应用 jsTree。 - **操作节点**:利用 `jstree('create_node'...

    基于Jquery的JSTree实例

    JSTree的官方文档详尽丰富,涵盖了所有可用的配置项和方法,是学习和使用JSTree的重要参考资料。 总结来说,基于jQuery的JSTree是一个功能强大的树型组件,能够满足多种场景的需求,通过灵活配置和丰富的API,可以...

    jsTree大集合 各种树形结构

    通过这个“jsTree大集合”,你不仅可以学习到jsTree的基本用法,还能了解到如何根据实际需求进行定制和扩展。无论你是前端新手还是经验丰富的开发者,这个资源都能为你提供宝贵的实践经验和灵感。记得探索压缩包中的...

    jsTree集经典

    **jsTree:JavaScript的可交互树形视图库** jsTree是一款基于JavaScript的开源库,专为构建可交互的树形结构而设计。它适用于Web应用程序,...通过学习和熟练掌握jsTree,开发者可以提升Web应用的用户体验和功能性。

    jsTree v.1.0中文文档

    总结来说,jsTree v.1.0中文文档虽然可能存在翻译上的不精确,但仍然是学习和使用该库的重要参考资料。了解并熟练运用其核心概念、API、事件和插件,能够帮助开发者有效地构建出具有交互性和功能性的树形结构界面。

    ztree+jstree最简单htm实例

    【ztree】与【jstree】都是在Web开发中常用的JavaScript树形插件,用于在网页上展示层级结构的数据,如目录、组织结构、菜单等。这两个插件都提供了丰富的功能和高度的可定制性,使得开发者可以方便地创建交互式的...

Global site tag (gtag.js) - Google Analytics