jsTree右键菜单事件

本文详细介绍如何使用jsTree插件实现树形结构中的右键菜单功能,包括导入必要的文件、初始化节点数据、定义菜单项及其操作等。

jsTree右键菜单事件

主要步骤详解:

1.导入js文件和css文件

/*导入css文件*/
<link rel="stylesheet" href="css/style.min.css"></link>
/*导入js文件*/
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jstree.min.js"></script>

2.编写显示位置

 <div id="jst"  style="background: #E0E0E0; border: 1px solid #E0E0E0; width: 240px; height: 800px;"></div>

3.初始化节点数据

/*初始化节点数据*/
var nodeTreeData=[{"id" : "people","text" : "人员","state" : { "opened" : true},"type" : "people",},
                       {"id" : "relate","text" : "关系","state" : { "opened" : true},"type" : "relate",} ];

4.使用jstree插件编写函数

    $('#jst').jstree(
            {
            /*core:表示jstree核心参数,主要设置两个data:也就是初始化时候jstree样子,check_callback:必须为true(否则增删改动作没有反应,这些动作都是需要回调。)*/
                "core" : {
                    "themes" : {
                        "stripes" : true
                    },
                    "check_callback" : true, // enable all modifications
                    "data" : nodeTreeData,                  
                },

                "types" : {
                    "default" : {

                    },
                    "people" : {
                        "icon" : "img/people.png",
                    },
                    "relate" : {
                        "icon" : "img/draw_line.png",
                    },
                /*plugins:表示你使用那些插件*/
                "plugins" : [ "dnd", "contextmenu", "types" ],
                /*contextmenu:就是右键菜单插件,items就是自定义右键菜单选项,label是右键菜单选项的名称。icon就是选项前面的图标,action点击选项触发事件*/
                "contextmenu" : {

                    "items" : {
                        "create" : {
                            "label" : "新增节点",
                            "action" : function(obj) {
                                var inst = jQuery.jstree.reference(obj.reference);
                                var clickedNode = inst.get_node(obj.reference);
                                var newNode = inst.create_node(obj.reference,clickedNode.val);
                                var ty = inst.get_type(obj.reference);
                                inst.set_type(newNode, ty);
                                var Nodeobj = inst.get_json(newNode);
                                var str = {
                                    "id" : Nodeobj.id,
                                    "text" : Nodeobj.text,
                                    "icon" : Nodeobj.icon,
                                    "type" : Nodeobj.type,
                                    "parentid" : clickedNode.id,
                                    "tablelist" : null
                                };
                                var selectedTab = $('#t_map').tabs('getSelected');
                                var pageTitle = selectedTab.panel('options').title;
                                $.post("lwy/createNode.do", {changedata : JSON.stringify(str),pageTitle:pageTitle}, 
                                        function(data) {});
                                inst.edit(newNode);
                                inst.open_node(obj.reference);
                            },
                        },
                        "rename" : {
                            "label" : "重命名",
                            "action" : function(obj) {
                                var inst = jQuery.jstree.reference(obj.reference);
                                var clickedNode = inst.get_node(obj.reference);
                                inst.edit(obj.reference,clickedNode.val);
                            }
                        },
                        "delete" : {
                            "label" : "删除节点",
                            "action" : function(obj) {
                                var inst = jQuery.jstree.reference(obj.reference);
                                var clickedNode = inst.get_node(obj.reference);
                                inst.delete_node(obj.reference);
                        },

                        }
                    }
                }   
            });

关于contextmenu插件的各个属性的意义,你可以查看jstree官方文档·,了解更多。
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值