jsTree事件和交互以及插件plugins详解
发布时间 - 2026-01-11 03:01:05 点击率:次本文为大家分享了jsTree事件和交互以及插件plugins,供大家参考,具体内容如下

1、事件
jsTree在容器中触发变量事件,你可以浏览所有事件,然后了解如何进行监听:https://www.jstree.com/api/#/?q=.jstree%20Event
通过data参数获取更多详细信息关于事件检查。
更多情况下就是你会得到所有节点对象,如果你通过ID获取这个节点,查看节点使用.get_node().
$('#jstree')
// listen for event
.on('changed.jstree', function (e, data) {
var i, j, r = [];
for(i = 0, j = data.selected.length; i < j; i++) {
r.push(data.instance.get_node(data.selected[i]).text);
}
$('#event_result').html('Selected: ' + r.join(', '));
})
// create the instance
.jstree();
2.交互
为了在一个实例中调用一个方法,你必须要获取实例引用然后调用方法,这个例子展示如何获取一个引用然后调取一个方法。
可以查看API获取更多的方法:https://www.jstree.com/api/#/?q=(
// 3 ways of doing the same thing
$('#jstree').jstree(true)
.select_node('mn1');
$('#jstree')
.jstree('select_node', 'mn2');
$.jstree.reference('#jstree')
.select_node('mn3');
3、插件
jsTree有些功能被移除核心,只有你需要的时候才使用它,为了确保使用插件,需要使用plugins参数配置选项,将插件名称添加到一个数组中。
举个例子确保所有插件都可以使用:(只要设置你需要使用的插件)
"plugins" : [ "checkbox", "contextmenu", "dnd", "massload", "search", "sort", "state", "types", "unique", "wholerow", "changed", "conditionalselect" ]
这里有快速预览每一个插件
3.1、changed plugin (改变插件)
这个插件添加关于选择改变的额外的信息,一旦包含plugins配置选项,每个changed.jstree事件数据将会包含一个新的属性名称为changed,它将给出最后关于seleted和deselected节点的事件(changed.jstree)
$(function () {
$("#plugins")
.on("changed.jstree", function (e, data) {
console.log(data.changed.selected); // newly selected
console.log(data.changed.deselected); // newly deselected
})
.jstree({
"plugins" : [ "changed" ]
});
});
3.2.checked plugin(复选框)
这个插件将会在每个节点前面渲染复选框的图标,使得多选变得更加容易。
它也支持三态,意味着一个节点有些子节点是选中,这个节点将会被渲染成未确定,这个状态可以传播。你可以通过级联配置选项来微调级联选项。
记住级联会复选框会检查所有节点,即使是不可用的节点。
不确定状态是一个自动计算的,但是如果你是使用AJAX加载形成树想要渲染一个节点作为不确定状态通过设置属性“undetermined”:true。
你可以在API找到所有配置复选框的选项https://www.jstree.com/api/#/?q=$.jstree.defaults.checkbox
$(function () {
$("#plugins1").jstree({
"checkbox" : {
"keep_selected_style" : false
},
"plugins" : [ "checkbox" ]
});
});
3.3 conditionalselect plugin(条件插件)
这个插件重写了activate_node函数(就是用户选择节点将会调用的函数),你可以通过回调避免这个函数被调用。
$(function () {
$("#plugins10").jstree({
"conditionalselect" : function (node, event) {
return false;
},
"plugins" : [ "conditionalselect" ]
});
});
3.4(Contextmenu plugin)上下文菜单插件
这插件就是你在一个节点上右键会弹出一个功能列表菜单。
你可以通过API找所有contextmenu插件的配置选项:点击打开链接
$(function () {
$("#plugins2").jstree({
"core" : {
// so that create works
"check_callback" : true
},
"plugins" : [ "contextmenu" ]
});
});
3.5 (drag&drop)拖拽插件
这个插件可以通过拖拽来重新改变树的结构。
你可以通过API找到更多的配置选项:点击打开链接
3.6.Massloadplugin(惯性负载插件)
这个插件通过一次请求(使用的是延迟加载)加载节点
你可以通过API找到更多的配置选项:点击打开链接
$(function () {
$("#plugins10").jstree({
"core" : {
"data" : { .. AJAX config .. }
},
"massload" : {
"url" : "/some/path",
"data" : function (nodes) {
return { "ids" : nodes.join(",") };
}
}
"plugins" : [ "massload", "state" ]
});
});
3.7.(search plugin) 搜索插件
这个插件可以在一棵树搜索对应的条目。
你可以通过API找到更多的配置选项:点击打开链接
$("#plugins4").jstree({
"plugins" : [ "search" ]
});
var to = false;
$('#plugins4_q').keyup(function () {
if(to) { clearTimeout(to); }
to = setTimeout(function () {
var v = $('#plugins4_q').val();
$('#plugins4').jstree(true).search(v);
}, 250);
});
});
3.8. sort plugin(排序插件)
这个插件可以重新对于同一级的条目进行排序,默认采用数字或26字母的顺序,你可以通过配置对比函数:点击打开链接
$(function () {
$("#plugins5").jstree({
"plugins" : [ "sort" ]
});
});
3.9.state plugin(状态插件)
这个插件保存所有打开和选中的节点到用户浏览器中,所以当再次返回相同的树,先前的状态将会被恢复
你可以通过API获取更多状态插件的配置选项:点击打开链接,你可以通过选中一个节点,然后刷新该页面就可以看到变化。
$(function () {
$("#plugins6").jstree({
"state" : { "key" : "demo2" },
"plugins" : [ "state" ]
});
});
3.10. types plugin(类型插件)
这个插件为一组节点预先定义类型,这就意味着为每个组很容易控制内部规则和图标。
为了设置节点类型,你可以使用set_type 或者在data中提供一个type属性
你可以通过API获取更多关于类型插件的配置选项和函数:点击打开链接
$(function () {
$("#plugins7").jstree({
"types" : {
"default" : {
"icon" : "glyphicon glyphicon-flash"
},
"demo" : {
"icon" : "glyphicon glyphicon-ok"
}
},
"plugins" : [ "types" ]
});
})
3.11. unique plugin(唯一插件)
同一层级的条目不能出现相同的名称。这个插件没有选项,它只是避免在同一节点的重命名和移动其它节点时出现相同的名称。
$(function () {
$("#plugins8").jstree({
"core" : {
"check_callback" : true
},
"plugins" : [ "unique", "dnd" ]
});
});
3.12 wholerow plugin (整行插件)
这个插件就是一个条目占满一行,方便选择,如果是一个很大的树它可能会导致在老的浏览器变慢。
$(function () {
$("#plugins9").jstree({
"plugins" : [ "wholerow" ]
});
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jsTree
# plugins
# 基于jstree使用AJAX请求获取数据形成树
# 基于jstree使用JSON数据组装成树
# jstree创建无限分级树的方法【基于ajax动态创建子节点】
# 基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
# jsTree 基于JQuery的排序节点 Bug
# jquery下jstree简单应用 - v1.0
# jquery.jstree 增加节点的双击事件代码
# 基于jsTree的无限级树JSON数据的转换代码
# JQery jstree 大数据量问题解决方法
# jsTree树控件(基于jQuery
# 超强悍)[推荐]
# 你可以
# 将会
# 复选框
# 是一个
# 加载
# 级联
# 不确定
# 的是
# 拖拽
# 如果你
# 你是
# 你会
# 你在
# 右键
# 很容易
# 这就
# 可以通过
# 弹出
# 写了
# 即使是
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何升级到最新版本?(升级指南和步骤)
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
IOS倒计时设置UIButton标题title的抖动问题
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
lovemo网页版地址 lovemo官网手机登录
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
使用豆包 AI 辅助进行简单网页 HTML 结构设计
青岛网站建设如何选择本地服务器?
如何快速使用云服务器搭建个人网站?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
米侠浏览器网页背景异常怎么办 米侠显示修复
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Laravel如何使用Sanctum进行API认证?(SPA实战)
如何基于云服务器快速搭建网站及云盘系统?
教你用AI润色文章,让你的文字表达更专业
七夕网站制作视频,七夕大促活动怎么报名?
Laravel如何自定义分页视图?(Pagination示例)
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
简单实现Android验证码
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
常州企业网站制作公司,全国继续教育网怎么登录?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
装修招标网站设计制作流程,装修招标流程?
详解CentOS6.5 安装 MySQL5.1.71的方法
如何实现建站之星域名转发设置?
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
如何在云虚拟主机上快速搭建个人网站?
Laravel如何为API生成Swagger或OpenAPI文档
Laravel如何创建自定义中间件?(Middleware代码示例)
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在景安云服务器上绑定域名并配置虚拟主机?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
如何快速建站并高效导出源代码?
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Laravel如何为API编写文档_Laravel API文档生成与维护方法
jQuery validate插件功能与用法详解
LinuxShell函数封装方法_脚本复用设计思路【教程】
javascript基本数据类型及类型检测常用方法小结

