treeTable是跨浏览器、性能很高的jquery的树表组件,它使用非常简单,只需要引用jquery库和一个js文件,接口也很简单。
引用的文件
<link href="/static/wgt/treeTable/themes/default/treeTable.min.css" rel="stylesheet" /> <script src="/static/wgt/treeTable/jquery.treeTable.min.js" type="text/javascript"> </script> js代码 $(function(){ var option = { theme:'vsStyle', expandLevel : 2, beforeExpand : function($treeTable, id) { //判断id是否已经有了孩子节点,如果有了就不再加载,这样就可以起到缓存的作用 if ($('.' + id, $treeTable).length) { return; } //这里的html可以是ajax请求 var html = '<tr id="8" pId="6"><td>5.1</td><td>可以是ajax请求来的内容</td></tr>' + '<tr id="9" pId="6"><td>5.2</td><td>动态的内容</td></tr>'; $treeTable.addChilds(html); }, onSelect : function($treeTable, id) { window.console && console.log('onSelect:' + id); } }; $('#treeTable1').treeTable(option); }); html结构 <table id="treeTable1" style="width:100%"> <tr> <td style="width:200px;">标题</td> <td>内容</td> </tr> <tr id="1"> <td><span controller="true">1</span></td> <td>内容</td></tr> <tr id="2" pId="1"> <td><span controller="true">2</span></td> <td>内容</td></tr> <tr id="3" pId="2"> <td>3</td> <td>内容</td> </tr> <tr id="4" pId="2"> <td>4</td> <td>内容</td> </tr> <tr id="5" pId="4"> <td>4.1</td> <td>内容</td> </tr> <tr id="6" pId="1" hasChild="true"> <td>5</td> <td>注意这个节点是动态加载的</td> </tr> <tr id="7"> <td>8</td> <td>内容</td> </tr> </table>
js代码
$(function(){ var option = { theme:'vsStyle', expandLevel : 2, beforeExpand : function($treeTable, id) { //判断id是否已经有了孩子节点,如果有了就不再加载,这样就可以起到缓存的作用 if ($('.' + id, $treeTable).length) { return; } //这里的html可以是ajax请求 var html = '<tr id="8" pId="6"><td>5.1</td><td>可以是ajax请求来的内容</td></tr>' + '<tr id="9" pId="6"><td>5.2</td><td>动态的内容</td></tr>'; $treeTable.addChilds(html); }, onSelect : function($treeTable, id) { window.console && console.log('onSelect:' + id); } }; $('#treeTable1').treeTable(option); });
html结构
<table id="treeTable1" style="width:100%"> <tr> <td style="width:200px;">标题</td> <td>内容</td> </tr> <tr id="1"> <td><span controller="true">1</span></td> <td>内容</td></tr> <tr id="2" pId="1"> <td><span controller="true">2</span></td> <td>内容</td></tr> <tr id="3" pId="2"> <td>3</td> <td>内容</td> </tr> <tr id="4" pId="2"> <td>4</td> <td>内容</td> </tr> <tr id="5" pId="4"> <td>4.1</td> <td>内容</td> </tr> <tr id="6" pId="1" hasChild="true"> <td>5</td> <td>注意这个节点是动态加载的</td> </tr> <tr id="7"> <td>8</td> <td>内容</td> </tr> </table>
function($treeTable, id) { //$treeTable 当前树表的jquery对象. //id 当前行的id //返回false,则直接退出,不会激发后面的beforeExpand和子节点的展开 return true; }
function($treeTable, id) { //$treeTable 当前树表的jquery对象. //id 当前行的id }