- 插件?
- 变化插件(Changed plugin)
- 勾选框插件(Checkbox plugin)
- 条件选择插件(Conditionalselect plugin)
- 右键菜单插件(Contextmenu plugin)
- Drag & drop plugin(dnd)
- 惯性加载插件(Massload plugin)
- 搜索插件(Search plugin)
- 排序插件(Sort plugin)
- 状态插件(State plugin)
- 类型插件(Types plugin)
- 唯一性插件(Unique plugin)
- 整行插件(Wholerow plugin)
插件?
jsTree 将一些功能从核心移出,成为插件,你需要时才启用此插件。plugins配置项是一个数组,数组项是插件名,用于启用插件。
插件的选项配置见插件 API页面。
例如,下面示例表示启用了所有官方插件(你可按需启用):
"plugins" : ["checkbox","contextmenu","dnd","massload","search","sort","state","types","unique","wholerow","changed","conditionalselect"]
下面将逐一介绍每个插件。
变化插件(Changed plugin)
此插件作用是为选择变化时提供更多附加信息。
一旦在plugins配置项中启用本插件,changed.jstree事件数据中将多一个changed属性,
这个属性包含一些数据,如最近一次changed.tree事件中的selected、deselected的节点。
$(function () {$("#plugins").on("changed.jstree", function (e, data) {console.log(data.changed.selected); // newly selectedconsole.log(data.changed.deselected); // newly deselected}).jstree({"plugins" : [ "changed" ]});});
示例:https://www.jstree.com/plugins/
勾选框插件(Checkbox plugin)
此插件在每个节点前添加一个勾选框,使得多选节点更方便。
此插件支持三种状态:全部子节点选中、全部未选中、部分选中undetermined。部分选中状态会向上转播状态
你还可通过设置传播方式的选项进行微调。
需注意的是,即使一个节点处于禁用状态,勾选框也会受传播的影响。
半选中状态undetermined是插件自动计算出来的,但当你使用 AJAX 来按需加载节点,
且想将这些未加载节点的状态设置为半选中状态,那你可传入这个参数:"undetermined" : true。
插件的选项配置见插件 API页面。
$(function () {$("#plugins1").jstree({"checkbox" : {"keep_selected_style" : false},"plugins" : [ "checkbox" ]});});
示例:https://www.jstree.com/plugins/
条件选择插件(Conditionalselect plugin)
此插件覆盖了activate_node函数,并允许设置成不被回调函数调用。
$(function () {$("#plugins10").jstree({"conditionalselect" : function (node, event) {return false;},"plugins" : [ "conditionalselect" ]});});
示例:https://www.jstree.com/plugins/
右键菜单插件(Contextmenu plugin)
此插件用于在树中点击右键时弹出一个菜单。
此菜单可通过具体的配置进行自定义。
插件的选项配置见插件 API页面。
$(function () {$("#plugins2").jstree({"core" : {// so that create works"check_callback" : true},"plugins" : [ "contextmenu" ]});});
示例:https://www.jstree.com/plugins/
Drag & drop plugin(dnd)
此插件允许拖动和释放节点来调整树结构。
插件的选项配置见插件 API页面。
$(function () {$("#plugins3").jstree({"core" : {"check_callback" : true},"plugins" : [ "dnd" ]});});
示例:https://www.jstree.com/plugins/
惯性加载插件(Massload plugin)
此插件允许一次请求获得多个节点的数据(与懒加载一起使用)。
插件的选项配置见插件 API页面。
$(function () {$("#plugins10").jstree({"core" : {"data" : { .. AJAX config .. }},"massload" : {"url" : "/some/path","data" : function (nodes) {return { "ids" : nodes.join(",") };}}"plugins" : [ "massload", "state" ]});});
示例:https://www.jstree.com/plugins/
搜索插件(Search plugin)
此插件允许对树的节点进行搜索,并允许只显示搜索到的节点。
插件的选项配置见插件 API页面。
$(function () {$("#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);});});
示例:https://www.jstree.com/plugins/
排序插件(Sort plugin)
此插件自动对兄弟节点进行排序,默认是按字母升序排序。
插件的选项配置见插件 API页面。
$(function () {$("#plugins5").jstree({"plugins" : [ "sort" ]});});
示例:https://www.jstree.com/plugins/
状态插件(State plugin)
此插件允许保存节点的打开、选中状态到用户浏览器中,这样下次重新打开页面时可恢复到上次关闭页面时的状态。
插件的选项配置见插件 API页面。
$(function () {$("#plugins6").jstree({"state" : { "key" : "demo2" },"plugins" : [ "state" ]});});
这个示例中,你可调整里面的节点,然后刷新页面看看节点的状态是否还有保留。
示例:https://www.jstree.com/plugins/
类型插件(Types plugin)
此插件用于为节点设置类型,即按类型形成不同的节点组,使得更容易对嵌套规则、图标等进行操作。
可用set_type或直接设置节点的type属性值来设置节点的类型。
插件的选项配置见插件 API页面。
$(function () {$("#plugins7").jstree({"types" : {"default" : {"icon" : "glyphicon glyphicon-flash"},"demo" : {"icon" : "glyphicon glyphicon-ok"}},"plugins" : [ "types" ]});});
示例:https://www.jstree.com/plugins/
唯一性插件(Unique plugin)
此插件强制限制兄弟节点间不能重名。
此插件没有配置项,其作用在于重命名、拖动节点时防止重名。
$(function () {$("#plugins8").jstree({"core" : {"check_callback" : true},"plugins" : [ "unique", "dnd" ]});});
示例:https://www.jstree.com/plugins/
整行插件(Wholerow plugin)
使每个节点显示为一整行,而不是仅仅节点的图标和节点名。
这会使得容易选中节点,但同时也可能会导致旧浏览器中拥有较多节点树较慢。
$(function () {$("#plugins9").jstree({"plugins" : [ "wholerow" ]});});
示例:https://www.jstree.com/plugins/
