ztree显示右键树

	var rightClickX,rightClickY;

	var setting = {  
            view: {
                dblClickExpand: false  
            },  
            data: {  
                simpleData: {  
                    enable: true  
                }  
            },  
            check: {  
                enable: true  
            },  
            callback: {  
                onRightClick: OnRightClick,
                beforeRename: zTreeBeforeRename
            },
     };
  
        function OnRightClick(event, treeId, treeNode) {  
            if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {  
                zTree.cancelSelectedNode();  
                rightClickX=event.clientX;
                rightClickY=event.clientY;
                alert(rightClickX+"=="+rightClickY);
                showRMenu("root", event.clientX, event.clientY);  
            } else if (treeNode && !treeNode.noR) {
                zTree.selectNode(treeNode);  
                rightClickX=event.clientX;
                rightClickY=event.clientY;
                showRMenu("node", event.clientX, event.clientY);  
            }  
        }  
  /*
        function showRMenu(type, x, y) {  
            $("#rMenu ul").show();  
            alert("showRMenu1");
            if (type == "root") {  
                $("#m_del").hide();  
                $("#m_check").hide();  
                $("#m_unCheck").hide();  
            } else {  
                $("#m_del").show();  
                $("#m_check").show();  
                $("#m_unCheck").show();  
            }  
            rMenu.css({ "top": y + "px", "left": x + "px", "visibility": "visible" });  
            $("body").bind("mousedown", onBodyMouseDown);  
        }  
        function hideRMenu() {  
            if (rMenu) rMenu.css({ "visibility": "hidden" });  
            $("body").unbind("mousedown", onBodyMouseDown);  
        }  
  */
        //显示右鍵  
        function showRMenu(type, x, y) {  
            $("#rMenu").show();  
            if (type == "root") {  
                $("#rMenu").hide();  
            } else {  
                $("#m_del").show();  
                $("#m_modify").show();  
            }  
            //0000000,0000001,0000002,不可以删除修改     
            zTree = $.fn.zTree.getZTreeObj("tree");  
            nodes = zTree.getSelectedNodes();  
            treeNode = nodes[0];  
            if (treeNode != null) {  
                treeID = treeNode.pId;
                if (treeID == null) {
                    $("#m_modify").hide();  
                    $("#m_del").hide();  
                }
            }  
  
            rMenu.css({ "top": y + "px", "left": x + "px", "visibility": "visible" });  
            $("body").bind("mousedown", onBodyMouseDown);  
        }  
  
  
        //隐藏右鍵  
        function hideRMenu() {  
            if (rMenu) rMenu.css({ "visibility": "hidden" });  
            $("body").unbind("mousedown", onBodyMouseDown);  
        }  
  
  
        function onBodyMouseDown(event) {  
            if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {  
                rMenu.css({ "visibility": "hidden" });  
            }  
            if (!(event.target.id == "rMenu2" || $(event.target).parents("#rMenu2").length > 0)) {  
                $("#rMenu2").css({ "visibility": "hidden" });  
            }  
        }  
  
        //鼠标点击事件不在节点上时隐藏右键菜单     
        $(function () {  
            $("body").bind(  
            "mousedown",  
            function (event) {  
                if (!(event.target.id == "rMenu2" || $(event.target)  
                        .parents("#rMenu2").length > 0)) {  
                    $("#rMenu2").hide();  
                }  
            });  
        });  
  
        /*******************新增  start*********************/  
        //显示新增  
        function showRMenu2(x, y) {  
            $("#rMenu2").show();  
            $("#rMenu2").css({ "top": y + "px", "left": x + "px", "visibility": "visible" });  
            $("body").bind("mousedown", onBodyMouseDown);  
        }  
  
        var addCount = 1;  
        //新增树节点  
        function addTreeNode() {  
            $("#rMenu").hide();  
            //显示新增div  
            var tag = 0;
            //$("#tree").mousemove(function (e) {  
                if (tag == 0){
                showRMenu2(rightClickX, rightClickY);  
                $("#typeCode").focus();  
                tag = tag + 1;
                }
           // });  
        }  
  
  
        //新增执行后台  
        function addTree() {  
            var zTree = $.fn.zTree.getZTreeObj("tree");  
            var nodes = zTree.getSelectedNodes();  
            $.ajax({  
                type: "post",  
                url: "/Image/moduleType.do",  
                dataType: 'json',  
                data: {  
                    action: "addTreeNode",  
                    parentid: nodes[0].id,  
                    typeCode: $("#typeCode").val(),
                    typeName: encodeURI($("#typeName").val()),
                    remark: encodeURI($("#remark").val()),
                    moduleCode: $("#moduleCode").val()
                },  
                success: function (json) {  
                    //强行加载父节点  
                    var treeObj = $.fn.zTree.getZTreeObj("tree");  
                    isParent = true;
                    //var nodes = treeObj.getSelectedNodes();  
                    var nodes = treeObj.getSelectedNodes();
                    treeNode = nodes[0];
					treeNode = treeObj.addNodes(treeNode, json);

                    //treeObj.reAsyncChildNodes(null, "refresh", true);
                    if (json == 0) alert("操作失败!");  
                },  
                error: function () {  
                    alert('Error loading HTML document');  
                }  
            });  
            $("#rMenu2").css({ "visibility": "hidden" });  
            $("#typeCode").val("");  
            $("#typeName").val("");  
            $("#remark").val("");  
  
        }  
        /*******************新增  end*********************/  
  
        /*******************修改  start*********************/  
        function editName() {  
            $("#rMenu").hide();  
            zTree = $.fn.zTree.getZTreeObj("tree");  
            nodes = zTree.getSelectedNodes();  
            zTree.editName(nodes[0]);  
        }  
  
        //捕获节点编辑名称结束(Input 失去焦点 或 按下 Enter 键)之后,更新节点名称数据之前的事件回调函数,并且根据返回值确定是否允许更改名称的操作  
        function zTreeBeforeRename(treeId, treeNode, newName,codes) {  

            zTree = $.fn.zTree.getZTreeObj("tree");  
            nodes = zTree.getSelectedNodes();  
            treeId = "tree";  
            treeNode = nodes[0];  
            //newName = nodes[0].name;
            //alert(newName);
            if (newName.length == 0) {  
                alert("节点名称不能为空.");  
                return false;  
            }  
            $.ajax({  
                type: "post",  
                url: "/Image/moduleType.do",  
                dataType: 'json',  
                data: {  
                    action: "modifyTree",  
                    id: nodes[0].id,  
                    nodename: encodeURI(newName),
                    moduleCode: $("#moduleCode").val()
                },  
                success: function (json) {  
                    alert('操作成功!');  
                },  
                error: function () {  
                    alert('Error loading HTML document');  
                }  
            });  
            return true;  
        }  
        /*******************修改  end*********************/  
        function removeTreeNode() {  
            hideRMenu();  
            var nodes = zTree.getSelectedNodes();  
            if (nodes && nodes.length > 0) {  
                if (nodes[0].children && nodes[0].children.length > 0) {
                
                	var msg ="不能删除根节点!"
                	alert(msg); 
                } else {
                
                $.ajax({
        			type: "POST",       
        			url: "/Image/moduleType.do",
        			data: {
        				action: "deleteTree",
        				id: nodes[0].id,
        				moduleCode: $("#moduleCode").val()
        			},
        			success: function(msg){            
        			}
        			});
                    zTree.removeNode(nodes[0]);  
                }  
            }  
        }  
        function checkTreeNode(checked) {  
            var nodes = zTree.getSelectedNodes();  
            if (nodes && nodes.length > 0) {  
                zTree.checkNode(nodes[0], checked, true);  
            }  
            hideRMenu();  
        }  
        function resetTree() {  
            hideRMenu();  
            $.fn.zTree.init($("#tree"), setting, zNodes);  
        }  
  
        function setCheck() {  
            var zTree = $.fn.zTree.getZTreeObj("tree");  
            var nodes = zTree.transformToArray(zTree.getNodes());  
            //设置跟节点不显示复选框  
            /**

            for (var i = 0; i < nodes.length; i++) {  
                var id = nodes[i].id;  
                for (var j = 0; j < nodes.length; j++) {  
                    if (id == nodes[j].pId) {  
                        node = zTree.getNodeByParam("id", id, null);  
                        node.nocheck = true;  
                        zTree.updateNode(node);  
                    }  
                }  
            }
            */  
        }  
  
        //初始化树     
     var zTree, rMenu;    
	 var treeNodes; 
     $(function(){    
       $.ajax({  
        async : false,  
        cache:false,  
        type: 'POST',  
        dataType : "json",  
        url: "/Image/moduleType.do", //请求的action路径 
        data: {  
            action: "doGetPrivilegeTree",  
            moduleCode: $("#moduleCode").val()
        },  
        error: function () {//请求失败处理函数  
            alert('请求失败');  
        },  
        success:function(data){ //请求成功后处理函数。    
            treeNodes = data;   //把后台封装好的简单Json格式赋给treeNodes  
        }  
    });  
    $.fn.zTree.init($("#tree"), setting, treeNodes);
    zTree = $.fn.zTree.getZTreeObj("tree");
    setCheck();
    rMenu = $("#rMenu");  
});
        
        
        
        //-->  
  
        function b_submit() {
            var tree = $.fn.zTree.getZTreeObj("tree");  
            var nodes = tree.getCheckedNodes(true);  
            var nodesArr = new Array();  

            for (var i = 0; i < nodes.length; i++) {  
                nodesArr[i] = nodes[i].id;
            }
            $.ajax({
        		type: "POST",       
        		url: "/Image/moduleType.do",
        		data: {
        			action: "setChecked",
        			idarr: nodesArr,
        			moduleCode: $("#moduleCode").val()
        		},
        		success: function(msg){
        			msg="设置成功!"
        			alert(msg);   
        		}
        	});

        }
        
        function b_back(){
        url = "/Image/moduleManager.do?action=prepareQuery&sysCode="+$("#sysCode").val();
    	window.location.href = url;
        }



    <!-- 隐藏新增 -->  
    <div id="rMenu2">  
        <ul>  
            <li>类型代码:  
                <input type="text" class="input_tx" id="typeCode" style="width: 100px; height: 16px;" />
            </li>
            <li>类型名称:
                <input type="text" class="input_tx" id="typeName" style="width: 100px; height: 16px;" />
            </li>
            <li>备  注:
                <input type="text" class="input_tx" id="remark" style="width: 100px; height: 16px;" />  
            </li>
            <li>
                <center><a class="orange" οnclick="addTree();">确定</a> </center>
            </li>  
        </ul>  
    </div>  
    <!-- 右键树 -->  
    <div id="rMenu" style="position:absolute; visibility:hidden;">  
    <li>
    <ul id="m_add" οnclick="addTreeNode();"><li>增加节点</li></ul>  
    <ul id="m_modify" οnclick="editName()"><li>修改节点</li></ul>  
    <ul id="m_del" οnclick="removeTreeNode();"><li>删除节点</li></ul>
    </li>  
    </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值