⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 api.html

📁 xyTreeV4.0.rar xyTreeV4.0.rar
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>xyTreeAPI文档</title>
<LINK href="APIcss/prot_ref.css" type="text/css" rel="stylesheet" />

<script>
	/*
	在两种浏览器上都显示出漂亮的文档真难
	*/
	
	function init(){
	  var tables = document.getElementsByTagName('table');
	  //添加错行的样式背景
	  for(var i=0;i<tables.length; i++){
	    var table = tables[i];
	    var trs = table.getElementsByTagName('tr');
	    for(var j=0;j<trs.length; j++){
	  		if(j%2 == 0){
	  		  trs[j].setAttribute('class','odd');
	  		  trs[j].setAttribute('className','odd');
	  		}
	  	}
	  }
	}
window.onload = init;
</script>

</head>



<body>
作者Email:xieye114@yahoo.com.cn
<br />
<a href="index.html">看详细的例子</a>
<br />
<br />
<br />

<h1 align="center">《xyTree使用手册》</h1>

<a name="gaishu:"><!-- --></a>
	<h2>概述:</h2>
	为了在HTML页面中使用树,我写了这几个js文件,参照了国外网站的xTree,
	图片也基本是用它的,生成的DOM结构也和它几乎一样。
	
<br />&nbsp;&nbsp;&nbsp;这个树的组件主要有:
<br />几个js文件
<br />1个css文件
<br />1个images文件夹,内有几张图片
<br />用户自己的数据文件,可以搞成js文件形式,也可以在java程序中写好,传给jsp。

	<div class="bold">主要不同点:</div>
	xTree是在初始化树时,就把DOM结构全部生成,(所以初始化慢,点击节点快)。
	<br />xyTree是当点击加号时,生成DOM结构,点击减号就隐藏,
	再点击加号时只是简单的去掉隐藏,所有如某个节点下有多个节点,
	第一次点击会稍慢些。(所以初始化快,点击节点稍慢,但可接收)
	<div class="bold">另外:</div>
<ul>
		<li>在IE6.0和FireFox2.0测试通过,一个字,快!</li>
		<li>要简单,所有没有运行时添加和删除节点的方法</li>
		<li>不能拖动</li>
		<li>点击节点会有反应,要自己写函数</li>
		<li>后缀是Normal的类用于普通树,另外3个用于复选框树</li>
		<li>如果某个页面要同时出现这两种树,就加载6个js文件,否则加载3个</li>
		<li>样式表xtree.css通用</li>
		<li>6个类之间没有继承关系,其实不好</li>
		<li>我不知道是否应该提供命名空间,等待有人给我出主意</li>
		<li>这次更新犯了一个错误,是开始考虑不周造成的,
   为了在同一个文件中混合使用两种树,改类名了,如果有用户的话,会产生麻烦,只好说抱歉了!</li>
		<li>基于对象的使用方式,可以在页面中放置任意棵树,互相不会受影响。</li>
		<li>完全开源</li>
		<li>只要发挥想象力,还可以有很多方法可以添加,主要看业务需求</li>
		<li>尽管我的目的就是简单,但说明文档还是冗长。</li>
</ul>		
	

<br />
<br />
<br />
<br />


<a name="leiyilan"><!-- --></a>
<h2>类一览</h2>
<p>
	<a href="#DivTreeNormal">DivTreeNormal</a><br>
	<a href="#TreeNormal">TreeNormal</a><br>
	<a href="#NodeNormal">NodeNormal</a><br><br>
	<a href="#DivTree">DivTree</a><br>
	<a href="#Tree">Tree</a><br>
	<a href="#Node">Node</a>
</p>	
	
<br />
<br />
<br />
<br />




<!-- 第一个类 -->
<a name="DivTreeNormal"><!-- --></a>
<h2>类 DivTreeNormal</h2>

<h6>	DivTreeNormal代表普通树。</h6>
在数据js文件中添加节点时必须按顺序,以下代码会产生错误:
<pre style="font:normal 12px 'Courier New';">node1 = new Node('下关分局');
node1.id = 1;
tree1.add(node1);

node222 = new Node('玄武分局');
node222.id = 3;
tree1.add(node222);

node2 = new Node('下关派出所1');
node2.id = 2;
node1.add(node2);
</pre>
以下代码是正确的:
<pre style="font:normal 12px 'Courier New';">node1 = new Node('下关分局');
node1.id = 1;
tree1.add(node1);

node2 = new Node('下关派出所1');
node2.id = 2;
node1.add(node2);

node222 = new Node('玄武分局');
node222.id = 3;
tree1.add(node222);
</pre>	
1)必须以深度遍历的方式初始化树的所有节点<br>
2)如想修改单击节点的反应要改clickRootNode()方法和clickNode()方法,必须看懂这两个方法的源代码,
在该类的最后<br>
3)点击根节点图标,会收缩,再点击,展开<br>
4)根节点图片和一般节点的图片都可以换,如果不喜欢那个文件夹的话,在本类中修改全局变量TreeConfig即可	<br>

	
	<br />下面给出了一个最简单的例子: 

<pre class="code" ><code style="FONT-FAMILY: 'Courier New';">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt;
&lt;title&gt;xyTree&lt;/title&gt;
&lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;xtree.css&quot; /&gt; 
&lt;script src=&quot;TreeNormal.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;NodeNormal.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;DivTreeNormal.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;data_fenjuWukuang2.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
function init(){
	document.getElementById('ceshi3').appendChild(Content.div);
	Content.init();
}
window.onload = init; 
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div id=&quot;ceshi3&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
 
<h4>另请参见:</h4>
<p>
	<a href="#DivTree">DivTree</a>
</p>
	
<table class="reference" cellSpacing="0" border="1" >
  <tbody>
  <tr>
    <th>域和方法</th>
    <th>返回值</th>
    <th>参数</th>
    <th>描述</th></tr>
  <tr>
    <td>DivTreeNormal(String name)</td>
    <td>构造方法,返回一个DivTreeNormal对象</td>
    <td>name:根节点名称</td>
    <td>
    	建立一个普通树对象。
    	</td></tr>
  <tr>
    <td>tree</td>
    <td>TreeNormal</td>
    <td>(none)</td>
    <td>
    	只读域,获得树的包含所有节点的对象
    	</td></tr>
  <tr>
    <td>div</td>
    <td>HTMLElement</td>
    <td>(none)</td>
    <td>
    	只读域,获得树的div对象
    	</td></tr>
  <tr>
    <td>init()</td>
    <td>(none)</td>
    <td>(none)</td>
    <td>
    	把树的第1级节点显示出来,只用于初始化时
    	</td></tr>
  <tr>
    <td>add(NodeNormal node)</td>
    <td>(none)</td>
    <td>node:待添加的1级节点</td>
    <td>
    	给树添加第一级节点
    	</td></tr>
  <tr>
    <td>clickRootNode()</td>
    <td>(none)</td>
    <td>(none)</td>
    <td>单击根节点的反应
    	</td></tr>
  <tr>
    <td>clickNode(int xuhao)</td>
    <td>(none)</td>
    <td>xuhao:节点的序号</td>
    <td>单击节点的反应
    	</td></tr>
  <tr>
    <td>hideTreeBody()</td>
    <td>(none)</td>
    <td>(none)</td>
    <td>隐藏树身
    	</td></tr>
  <tr>
    <td>showTreeBody()</td>
    <td>(none)</td>
    <td>(none)</td>
    <td>显示树身
    	</td></tr>
	</tbody>
</table>









<!-- 第2个类 -->
<br /><br /><br /><br /><br />
<a name="TreeNormal"><!-- --></a>
<h2>类 TreeNormal</h2>
<h6>	TreeNormal代表普通树的数据结构,可以获得数组形式的所有节点和树形式的所有节点,可以获得包含自己的树对象。
</h6>

<h4>另请参见:</h4>
<p>
	<a href="#DivTreeNormal">DivTreeNormal</a><br />
	<a href="#NodeNormal">NodeNormal</a>
</p>
<table class="reference" cellSpacing="0" border="1" >
  <tbody>
  <tr>
    <th>域和方法</th>
    <th>返回值</th>
    <th>参数</th>
    <th>描述</th></tr>
  <tr>
    <td>treename</td>
    <td>Stirng</td>
    <td>(none)</td>
    <td>
    	只读域,获得树的根节点名称
    	</td></tr>
  <tr>
    <td>maxlevel</td>
    <td>int</td>
    <td>(none)</td>
    <td>
    	只读域,获得树的最大级别,就是层数
    	</td></tr>
  <tr>
    <td>root</td>
    <td>NodeNormal</td>
    <td>(none)</td>
    <td>
    	只读域,获得树的根节点,然后可以获得所有节点
    	</td></tr>
  <tr>
    <td>divtree</td>
    <td>DivTreeNormal</td>
    <td>(none)</td>
    <td>
    	只读域,获得树
    	</td></tr>
  <tr>
    <td>treeArray</td>
    <td>Array:NodeNormal</td>
    <td>(none)</td>
    <td>
    	只读域,获得树所有节点对应的一个简单的数组
    	</td></tr>

	</tbody>
</table>







<!-- 第3个类 -->
<br /><br /><br /><br /><br />
<a name="NodeNormal"><!-- --></a>
<h2>类 NodeNormal</h2>
<h6>	NodeNormal代表普通节点。</h6>
<pre style="font:normal 12px 'Courier New';">
关于给节点加属性:
如想要加属性name2,需要在Node.js或NodeNormal.js文件(看你用的是普通树还是复选框树)中的节点类的构造方法中加一句
this.name2;(其实也可以不加,如例子中的《精通css》树,但是可能会影响速度?我也不知道)

然后,在js数据文件中设置相应的属性,如下
node1 = new Node('下关分局');
node1.id = 1;
node1.name2 = '分局';
tree1.add(node1);
就可以了,当如,id属性不是必须的

</pre>
	
	
	
	<br />以下是示例代码
<pre class="code" ><code style="FONT-FAMILY: 'Courier New';">
DivTree.prototype.clickNode = function (xuhao){
	var node = this.tree.treeArray[xuhao]; //这句话是固定的,勿改,目的:获得节点
	var s;
	if(this.tree.treename == 'xieye的最爱'){  //本例中是xieye的最爱
	  s = node.name;
	  digui(node);
	}
	else  //本例中是中华人民共和国的行政区划
	  s = '[' + node.id + ']=[' + node.name + ']';
	alert(s);  //这个方法的目的就是打印出用户点击的节点链
	
	//递归
	function digui(node){
	  	var parent = node.parent;
	  	s = parent.name + '/' + s;
	  	if(parent == node.tree.root) return;
	  	digui(parent);
	};
}
</code></pre>
 
<h4>另请参见:</h4>
<p>
	<a href="#DivTreeNormal">DivTreeNormal</a><br />
	<a href="#TreeNormal">TreeNormal</a>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -