| New file |
| | |
| | | <!DOCTYPE html> |
| | | <HTML> |
| | | <HEAD> |
| | | <TITLE> ZTREE DEMO - select menu</TITLE> |
| | | <meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
| | | <link rel="stylesheet" href="../../../css/demo.css" type="text/css"> |
| | | <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css"> |
| | | <script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script> |
| | | <script type="text/javascript" src="../../../js/jquery.ztree.core.js"></script> |
| | | <script type="text/javascript" src="../../../js/jquery.ztree.excheck.js"></script> |
| | | <script type="text/javascript" src="../../../js/jquery.ztree.exedit.js"></script> |
| | | <SCRIPT type="text/javascript"> |
| | | <!-- |
| | | var setting = { |
| | | view: { |
| | | dblClickExpand: false |
| | | }, |
| | | check: { |
| | | enable: true |
| | | }, |
| | | callback: { |
| | | onRightClick: OnRightClick |
| | | } |
| | | }; |
| | | |
| | | var zNodes =[ |
| | | {id:1, name:"无右键菜单 1", open:true, noR:true, |
| | | children:[ |
| | | {id:11, name:"节点 1-1", noR:true}, |
| | | {id:12, name:"节点 1-2", noR:true} |
| | | |
| | | ]}, |
| | | {id:2, name:"右键操作 2", open:true, |
| | | children:[ |
| | | {id:21, name:"节点 2-1"}, |
| | | {id:22, name:"节点 2-2"}, |
| | | {id:23, name:"节点 2-3"}, |
| | | {id:24, name:"节点 2-4"} |
| | | ]}, |
| | | {id:3, name:"右键操作 3", open:true, |
| | | children:[ |
| | | {id:31, name:"节点 3-1"}, |
| | | {id:32, name:"节点 3-2"}, |
| | | {id:33, name:"节点 3-3"}, |
| | | {id:34, name:"节点 3-4"} |
| | | ]} |
| | | ]; |
| | | |
| | | function OnRightClick(event, treeId, treeNode) { |
| | | if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) { |
| | | zTree.cancelSelectedNode(); |
| | | showRMenu("root", event.clientX, event.clientY); |
| | | } else if (treeNode && !treeNode.noR) { |
| | | zTree.selectNode(treeNode); |
| | | showRMenu("node", event.clientX, event.clientY); |
| | | } |
| | | } |
| | | |
| | | function showRMenu(type, x, y) { |
| | | $("#rMenu ul").show(); |
| | | if (type=="root") { |
| | | $("#m_del").hide(); |
| | | $("#m_check").hide(); |
| | | $("#m_unCheck").hide(); |
| | | } else { |
| | | $("#m_del").show(); |
| | | $("#m_check").show(); |
| | | $("#m_unCheck").show(); |
| | | } |
| | | |
| | | y += document.body.scrollTop; |
| | | x += document.body.scrollLeft; |
| | | 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"}); |
| | | } |
| | | } |
| | | var addCount = 1; |
| | | function addTreeNode() { |
| | | hideRMenu(); |
| | | var newNode = { name:"增加" + (addCount++)}; |
| | | if (zTree.getSelectedNodes()[0]) { |
| | | newNode.checked = zTree.getSelectedNodes()[0].checked; |
| | | zTree.addNodes(zTree.getSelectedNodes()[0], newNode); |
| | | } else { |
| | | zTree.addNodes(null, newNode); |
| | | } |
| | | } |
| | | function removeTreeNode() { |
| | | hideRMenu(); |
| | | var nodes = zTree.getSelectedNodes(); |
| | | if (nodes && nodes.length>0) { |
| | | if (nodes[0].children && nodes[0].children.length > 0) { |
| | | var msg = "要删除的节点是父节点,如果删除将连同子节点一起删掉。\n\n请确认!"; |
| | | if (confirm(msg)==true){ |
| | | zTree.removeNode(nodes[0]); |
| | | } |
| | | } else { |
| | | 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($("#treeDemo"), setting, zNodes); |
| | | } |
| | | |
| | | var zTree, rMenu; |
| | | $(document).ready(function(){ |
| | | $.fn.zTree.init($("#treeDemo"), setting, zNodes); |
| | | zTree = $.fn.zTree.getZTreeObj("treeDemo"); |
| | | rMenu = $("#rMenu"); |
| | | }); |
| | | //--> |
| | | </SCRIPT> |
| | | <style type="text/css"> |
| | | div#rMenu {position:absolute; visibility:hidden; top:0; background-color: #555;text-align: left;padding: 2px;} |
| | | div#rMenu ul li{ |
| | | margin: 1px 0; |
| | | padding: 0 5px; |
| | | cursor: pointer; |
| | | list-style: none outside none; |
| | | background-color: #DFDFDF; |
| | | } |
| | | </style> |
| | | </HEAD> |
| | | |
| | | <BODY> |
| | | <h1>右键菜单的实现</h1> |
| | | <h6>[ 文件路径: super/rightClickMenu.html ]</h6> |
| | | <div class="content_wrap"> |
| | | <div class="zTreeDemoBackground left"> |
| | | <ul id="treeDemo" class="ztree"></ul> |
| | | </div> |
| | | <div class="right"> |
| | | <ul class="info"> |
| | | <li class="title"><h2>实现方法说明</h2> |
| | | <ul class="list"> |
| | | <li>利用 beforeRightClick / onRightClick 事件回调函数简单实现的右键菜单</li> |
| | | <li class="highlight_red">Demo 中的菜单比较简陋,你完全可以配合其他自定义样式的菜单图层混合使用</li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | <div id="rMenu"> |
| | | <ul> |
| | | <li id="m_add" onclick="addTreeNode();">增加节点</li> |
| | | <li id="m_del" onclick="removeTreeNode();">删除节点</li> |
| | | <li id="m_check" onclick="checkTreeNode(true);">Check节点</li> |
| | | <li id="m_unCheck" onclick="checkTreeNode(false);">unCheck节点</li> |
| | | <li id="m_reset" onclick="resetTree();">恢复zTree</li> |
| | | </ul> |
| | | </div> |
| | | </BODY> |
| | | </HTML> |