依赖:
jquery.js
jstree.js
//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.3/themes/default/style.min.css
备注:
绑定页面元素可以直接选中,绑定json数据则需要在ready.jstree事件中选中。
0、从 DOM 中删除 jstree 的所有痕迹,并销毁所有的实例
$.jstree.destroy ()
1、创建实例
1)直接绑定页面元素
$('#jstree').jstree();
2)绑定json数据
$('#jstree').jstree({ 'core' : { 'data' : [ { "id" : "node1", "text" : "Root node 1", "children" : [ { "id" : "child_node_1", "text" : "Child node 1", "selected" : true }, { "id" : "child_node_2", "text" : "Child node 2" } ] }, { "id" : "node2", "text" : "Root node 2" } ] } });
2、获取一个已存在实例的引用
$.jstree.reference('jstree');
$.jstree.reference('#jstree');
$.jstree.reference($('#jstree'));
$.jstree.reference(document.getElementByID('jstree'));
3、获取一个已存在的节点
$('#jstree').jstree("get_node", "child_node_1");
4、当根节点(root)第一次加载时触发
$('#jstree').jstree().bind('loaded.jstree', function(e, data) {//加载事件
data.instance.open_all();
data.instance.refresh();
});
5、当所有节点都加载完毕时触发
$('#jstree').jstree().bind('ready.jstree', function(obj, e) {//初始化准备完成事件
$('#jstree').jstree(true).select_node('child_node_1');
});
6、选中事件
$('#jstree').jstree().on('select_node.jstree', function(e, data) {//选中事件
console.log("1~" + data.node.id + ":" + data.node.text);
});
7、改变事件
$('#jstree').jstree().on("changed.jstree",function(e, data) {//改变事件
console.log("2~" + "The selected nodes are:" + data.selected[0]);
});
8、点击事件
$('#jstree').jstree().on('activate_node.jstree', function(e, data) {//点击事件
console.log("3~" + data.node.id + ":" + data.node.text);
})
绑定的json属性列表
{
id : "string" // will be autogenerated if omitted
text : "string" // node text
icon : "string" // string for custom
state : {
opened : boolean // is the node open
disabled : boolean // is the node disabled
selected : boolean // is the node selected
},
children : [] // array of strings or objects
li_attr : {} // attributes for the generated LI node
a_attr : {} // attributes for the generated A node
}
实例如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jstree basic demos</title> <script src="jstreeGroup/jquery-3.3.1.js"></script> <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.3/themes/default/style.min.css" /> <script src="jstreeGroup/jstree.min.js"></script> </head> <body> <div id="jstree"> <!-- in this example the tree is populated from inline HTML --> <ul> <li id="node1">Root node 1 <ul> <li id="child_node_1">Child node 1</li> <li id="child_node_2">Child node 2</li> </ul> </li> <li id="node2">Root node 2</li> </ul> </div> <script> $(function() { /** $('#jstree').jstree().on('select_node.jstree', function(e, data) {//选中事件 console.log("1~" + data.node.id + ":" + data.node.text); }).on( "changed.jstree", function(e, data) {//改变事件 console.log("2~" + "The selected nodes are:" + data.selected[0]); }).on('activate_node.jstree', function(e, data) {//点击事件 console.log("3~" + data.node.id + ":" + data.node.text); }).bind('loaded.jstree', function(e, data) {//加载事件 data.instance.open_all(); data.instance.refresh(); }); **/ $('#jstree').jstree({ 'core' : { 'data' : [ { "id" : "node1", "text" : "Root node 1", "children" : [ { "id" : "child_node_1", "text" : "Child node 1", "selected" : true }, { "id" : "child_node_2", "text" : "Child node 2" } ] }, { "id" : "node2", "text" : "Root node 2" } ] } }).on('select_node.jstree', function(e, data) {//选中事件 console.log("1~" + data.node.id + ":" + data.node.text); }).on("changed.jstree",function(e, data) {//改变事件 console.log("2~" + "The selected nodes are:" + data.selected[0]); }).on('activate_node.jstree', function(e, data) {//点击事件 console.log("3~" + data.node.id + ":" + data.node.text); }).bind('loaded.jstree', function(e, data) {//加载事件 data.instance.open_all(); data.instance.refresh(); }).bind('ready.jstree', function(obj, e) {//初始化准备完成事件 $('#jstree').jstree(true).select_node('child_node_1'); //$('#jstree').jstree('select_node', 'child_node_2'); //$.jstree.reference('#jstree').select_node('child_node_1'); /** //获取一个已存在实例的引用 $.jstree.reference('jstree'); $.jstree.reference('#jstree'); $.jstree.reference($('#jstree')); $.jstree.reference(document.getElementByID('jstree')); **/ /** var node = $('#jstree').jstree("get_node", "child_node_1");//根据 ID 获取节点 console.log(node.text); **/ }); }); </script> </body> </html>