龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

js树型组件:js实现树型菜单(Dtree和Xtree)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
dTree(http://www.destroydrop.com/javascripts/tree/) dTree是一种免费的javascript树型菜单,它支持ie5+,ns6+,Opera7+以及Mozilla浏览器 使用简单: 引入树,在head中加入dtree. js 和dtree.css(注意要把 js ,css和img放到

dTree(http://www.destroydrop.com/javascripts/tree/)  

  1. dTree是一种免费的javascript树型菜单, 它支持ie5+, ns 6+, Opera 7+以及Mozilla浏览器   
  2. 使用简单:   
  3. 引入树, 在head中加入dtree.js和dtree.css(注意要把js,css和img放到相应目录), 如下所示:   
  4. <link rel="StyleSheet" href="dtree.css" type="text/css" />  
  5. <script type="text/javascript" src="dtree.js"></script>  
  6. 实例化树并显示   
  7. <div class="dtree">  
  8.   
  9.     <p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>  
  10.   
  11.     <script type="text/javascript">  
  12.         <!--   
  13.   
  14.         d = new dTree('d');   
  15.   
  16.         d.add(0,-1,'My example tree');   
  17.         d.add(1,0,'Node 1','example01.html');   
  18.         d.add(2,0,'Node 2','example01.html');   
  19.         d.add(3,1,'Node 1.1','example01.html');   
  20.         d.add(4,0,'Node 3','example01.html');   
  21.         d.add(5,3,'Node 1.1.1','example01.html');   
  22.         d.add(6,5,'Node 1.1.1.1','example01.html');   
  23.         d.add(7,0,'Node 4','example01.html');   
  24.         d.add(8,1,'Node 1.2','example01.html');   
  25.         d.add(9,0,'My Pictures','example01.html','Pictures I\'ve taken over the years','','','img/imgfolder.gif');   
  26.         d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');   
  27.         d.add(11,9,'Mom\'s birthday','example01.html');   
  28.         d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');   
  29.         d.add(13,12,'sub Recycle Bin','','','','img/trash.gif');   
  30.   
  31.         document.write(d);   
  32.   
  33.         //-->  
  34.     </script>  
  35.   
  36. </div>  
  37. add方法的参数说明 id:当前节点标识, pid:父节点标识, name:当前节点名字, url:当菜单被点击时响应的超链接, title:提示语,    
  38. target:在目标窗口打开链接, icon:关闭时的显示图标, iconOpen:打开时的显示图标, open:默认的打开状态, true打开, false关闭(不过它会读cookie, 所以有时看不出效果)   
  39. dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open)   
  40.   
  41. Xtree(http://webfx.eae.net/dhtml/xtree/implementation.html)   
  42. 相对dTree来说, xTree功能要多一些, 能动态增减树的节点   
  43. 引入树:   
  44. <!-- The xtree script file -->  
  45. <script src="xtree.js"></script>  
  46. <link type="text/css" rel="stylesheet" href="xtree.css">  
  47. 实例化树, 并显示   
  48. <div style="position: absolute; width: 200px; top: 0px; left: 0px; height: 100%; padding: 5px; overflow: auto;">  
  49.   
  50. <!-- js file containing the tree content, edit this file to alter the menu,   
  51.      the menu will be inserted where this tag is located in the document -->  
  52. <script>  
  53. if (document.getElementById) {   
  54.     var tree = new WebFXTree('Root');   
  55.     tree.setBehavior('classic');   
  56.     var a = new WebFXTreeItem('1');   
  57.     tree.add(a);   
  58.     var b = new WebFXTreeItem('1.1');   
  59.     a.add(b);   
  60.     b.add(new WebFXTreeItem('1.1.1'));   
  61.     b.add(new WebFXTreeItem('1.1.2'));   
  62.     b.add(new WebFXTreeItem('1.1.3'));   
  63.     var f = new WebFXTreeItem('1.1.4');   
  64.     b.add(f);   
  65.     f.add(new WebFXTreeItem('1.1.4.1'));   
  66.     f.add(new WebFXTreeItem('1.1.4.2'));   
  67.     f.add(new WebFXTreeItem('1.1.4.3'));   
  68.     var c = new WebFXTreeItem('1.2');   
  69.     a.add(c);   
  70.     c.add(new WebFXTreeItem('1.5.1'));   
  71.     c.add(new WebFXTreeItem('1.5.2'));   
  72.     c.add(new WebFXTreeItem('1.5.3'));   
  73.     a.add(new WebFXTreeItem('1.3'));   
  74.     a.add(new WebFXTreeItem('1.4'));   
  75.     a.add(new WebFXTreeItem('1.5'));   
  76.     var d = new WebFXTreeItem('2');   
  77.     tree.add(d);   
  78.     var e = new WebFXTreeItem('2.1');   
  79.     d.add(e);   
  80.     e.add(new WebFXTreeItem('2.1.1'));   
  81.     e.add(new WebFXTreeItem('2.1.2'));   
  82.     e.add(new WebFXTreeItem('2.1.3'));   
  83.     d.add(new WebFXTreeItem('2.2'));   
  84.     d.add(new WebFXTreeItem('2.3'));   
  85.     d.add(new WebFXTreeItem('2.4'));   
  86.     document.write(tree);   
  87. }   
  88.   
  89. function addNode() {   
  90.     if (tree.getSelected()) {   
  91.         tree.getSelected().add(new WebFXTreeItem('New'));   
  92.     }   
  93. }   
  94.   
  95. function addNodes() {   
  96.     if (tree.getSelected()) {   
  97.         var foo = tree.getSelected().add(new WebFXTreeItem('New'));   
  98.         var bar = foo.add(new WebFXTreeItem('Sub 1'));   
  99.         var fbr = foo.add(new WebFXTreeItem('Sub 2'));   
  100.     }   
  101. }   
  102.   
  103. function delNode() {   
  104.     if (tree.getSelected()) {   
  105.         tree.getSelected().remove();   
  106.     }   
  107. }   
  108. </script>  
  109.   
  110. </div>  
  111.   
  112. 打开关闭节点:tree.toggle()   
  113. 打开节点:tree.expand();   
  114. 关闭节点:tree.collapse();   
  115. 打开所有节点:tree.expandAll();   
  116. 关闭所有节点:tree.collapseAll();   
  117. 打开子节点:tree.expandChildren();   
  118. 关闭子节点:tree.collapseChildren();   
  119. 显示当前节点的id:if (tree.getSelected()) { alert(tree.getSelected().id); }   
  120. 增加节点:addNode()   
  121. 增加多个节点:addNodes()   
  122. 删除节点:delNode()
精彩图集

赞助商链接