JSTREE生成jsTree-001

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSTREE生成jsTree-001相关的知识,希望对你有一定的参考价值。

技术分享
<span style="font-size:14px;"><script>
    
        var r = [];    // 权限树中被选中的叶子节点
        var currentGroupId;

        function showPermitTree(id) {
            currentGroupId = id;
            $.ajax({
                data : "currentGroupId=" + id,
                type : "POST",
                //dataType : ‘json‘,
                url : "/test/permittree",
                error : function(data) {
                    alert("出错了!!:" + data);
                },
                success : function(data) {
                    //alert("success:" + data);
                    createPermitTree(data);
                }
            });
            
            ${‘buttonDiv‘}.style.display="";
        }

        function createPermitTree(datastr) {
            datastr = eval("" + datastr + "");
            $(‘#permitTree‘).jstree({
                ‘plugins‘ : [ "wholerow", "checkbox", "types" ],
                ‘core‘ : {
                    "themes" : {
                        "responsive" : false
                    },
                    ‘data‘ : datastr
                },
                "types" : {
                    "default" : {
                        "icon" : "fa fa-folder icon-state-warning icon-lg"
                    },
                    "file" : {
                        "icon" : "fa fa-file icon-state-warning icon-lg"
                    }
                }
            });
        }

        // listen for event
        $(‘#permitTree‘).on(‘changed.jstree‘, function(e, data) {
            r = [];
            var i, j;
            for (i = 0, j = data.selected.length; i < j; i++) {
                var node = data.instance.get_node(data.selected[i]);
                if (data.instance.is_leaf(node)) {
                    r.push(node.id);
                }
            }
            //alert(‘Selected: ‘ + r.join(‘@@‘));
        })
        
        function saveTree() {
            $.ajax({
                data : {‘currentGroupId‘ : currentGroupId,
                        ‘selectedNodes‘ : r.join(‘@@‘)},
                type : "POST",
                //dataType : ‘json‘,
                url : "/test/savetree",
                error : function(data) {
                    alert("出错了!!:" + data);
                },
                success : function(data) {
                    alert("保存成功!");
                }
            });
        }
        
    </script></span><span style="font-size:24px;">
</span>
View Code

1. ajax请求生成jsTree

 

2. jsTree change事件

上面代码中含change事件。把所有选中的节点的id放到一个数组中。

页面上有个按钮,点击后触发saveTree函数,发请求给后台,把选中的节点的id发给后台。

技术分享
<script>
$(‘#jstree‘).jstree({
    core : {
        check_callback : true,
        data : [
            { "id" : "1", "parent" : "#", "text" : "root" },
            { "id" : "2", "parent" : "1", "text" : "child 1" },
            { "id" : "3", "parent" : "1", "text" : "child 2" }
        ],
    },
    plugins : ["wholerow","contextmenu"],
    "contextmenu": {  
            "items": {  
                "create": null,  
                "rename": null,  
                "remove": null,  
                "ccp": null,  
                "add": {  
                    "label": "add",  
                    "action": function (obj) {
                        var inst = jQuery.jstree.reference(obj.reference);  
                        var clickedNode = inst.get_node(obj.reference); 
                        alert("add operation--clickedNode‘s id is:" + clickedNode.id);
                    }  
                },  
                "delete": {  
                    "label": "delete",  
                    "action": function (obj) {
                        var inst = jQuery.jstree.reference(obj.reference);  
                        var clickedNode = inst.get_node(obj.reference); 
                        alert("delete operation--clickedNode‘s id is:" + clickedNode.id);
                    }  
                }  
            }  
        } 
}).on("ready.jstree", function (e, data) {
  data.instance.open_all();
});
</script>    
View Code

 

转载自http://blog.csdn.net/hejinwei_1987/article/details/46822671

 

以上是关于JSTREE生成jsTree-001的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中解析由 jstree 生成的 json

如何给JsTree生成的树的每个节点添加上自定义的右键菜单

jsTree树形菜单分类

jstree使用示例代码

jsTree:如何将选定节点的 ID 获取到 jsTree 中的根节点?

jstree 如何获得选中节点的值?