【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>

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>    

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

时间: 2024-12-25 00:12:17

【JSTREE】生成jsTree-001的相关文章

【JSTREE】 jstree 使用API

jstree 使用API beforechange: function() { log("About to change"); return true }, beforeopen : function() { log("About to open"); return true }, beforeclose : function() { log("About to close"); return true }, beforemove : funct

jstree 树形菜单问题

stree是一个强大的树形页.但是坑很多.因为本人的英语水平差,上面都是英语注释,自己来写个做备忘录 引入JS文件.这个网上大把 我引入的是JSON数据格式为 $json = '[ { "id": "ajson1", "parent": "#", "text": "Simple root node" }, { "id": "ajson2", &qu

基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容,本篇继续这一主题,介绍页面内容常用到的数据分页处理,以及Bootstrap插件JSTree的使用.在数据的界面显示当中,表格数据的展示以及分页是非常常见的处理操作,利用Bootstrap的样式布局,以及JQuery的Ajax数据处理,就能很好实现数据的动态展示和分页处理. 1.列表展示和分页处理 1)数据的列

【JSTREE】动态加载子节点

js中初始化jstree $('#contact-org').jstree({ "data" : { "dataType": 'json', "url":function(node){ return ctxPath + "/v-contact?queryOrg"; }, "data":function(node){ return {"id" : node.id}; } } } } 返回的

JavaScript JsTree实例

1 var RightTree= function () { }; 2 RightTree.prototype = { 3 //初始化权限树 4 InitRightTree: function () { 5 $.ajax({ 6 type: "get", 7 url: "/Handler/RoleHandler.ashx", 8 dataType: "json", 9 data: { type: 6, _: Math.random() }, 10

jstree使用小结(一)

项目中用到tree结构,使用了jstree做个笔记如下: 1. 官网: http://www.jstree.com/    有时候打不开,那就只能等打得开的时候再看了...O(∩_∩)O [PS: 一些灰常基本的我可能就略过了...] 2. 先看看效果: (1)去官网下载jstree包,然后引入; 额外的样式文件(font-awesome.css):  到这个网址去下载  然后引入 http://fontawesome.io/license (2)添加jstree的容器 <div id="

JsTree

一.JStree的简单介绍 1.关于jstree jsTree 使用了 jQuery 和 Sarissa,是一个是免费的但是设置灵活的,基于 JavaScript 跨浏览器支持的网页树形部件. jsTree 支持三种数据源头: 预先定义好的 HTML -嵌套的列表结构 JSON XML jsTree 的主要功能有: 同步导入 – 只需要提供一个 URL,就会去请求数据(只适合 JSON 和 XML 数据形式). 支持打开,关闭,重命名,创建,删除节点(通过预先定义好的规则) 支持多种回调函数(o

jstree高级使用,获取所有选中的值并且所有待选的父级结点值

var tree = $("#jstree").jstree({ "core": { "themes": { "responsive": false }, "check_callback": true, 'data': { 'url': function (node) { return '/test/jstreejson'; }, 'data': function (node) { return { 'pa

jstree的基本使用例子

var menu = (function() { var _menu = {data:{}, initMenu : function() { $.jstree.defaults.core.themes.variant = "large"; $.jstree.defaults.core.themes.responsive = true; $.jstree.defaults.sort=function(a,b){ return this.get_node(a).original.order