簡介
treeTable是跨瀏覽器、性能很高的jquery的樹表組件,它使用非常簡單,只需要引用jquery庫和一個js文件,接口也很簡單。
效果圖
function($treeTable, id) { //$treeTable 當前樹表的jquery對象. //id 當前行的id //返回false,則直接退出,不會激發后面的beforeExpand和子節點的展開 return true; }
function($treeTable, id) { //$treeTable 當前樹表的jquery對象. //id 當前行的id }
引用的文件
<script src="/script/jquery.js" type="text/javascript"> </script> <script src="/script/treeTable/jquery.treeTable.js" type="text/javascript"> </script>js代碼
<script src="/script/jquery.js" type="text/javascript"> </script> <script src="/script/treeTable/jquery.treeTable.js" type="text/javascript"> </script>
<script type="text/javascript"> $(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); }); </script>
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>
1.0版本:創建基本功能。(2011-05-04)
1.1版本:(2011-05-08)
這個版本提高了性能,做了以下改進: * 1、使用了Css Sprite Tools 合並了分散的圖標 * 2、使用了.id的方式來代替原來[pId=id],這樣選擇孩子效率更高 * 3、把css剝離出來,增加動態添加css,每次家在前判斷是否添加過 關於第二點,非常感謝onli同學的提醒。但我並沒有直接修改我的接口,直接除去pId,而是在第一次遍歷時將pId作為class名添加到節點中。這樣有兩個好處: (1)接口可讀性會比較好,pId比class更容易理解。 (2)第二點,如果直接使用class,那節點本來就有樣式,這樣獲取到的className還要去分解空格得到pId,挺麻煩的。
1.3版本:(2011-05-09)
這個版本擴展了事件,做了以下改進: * 1、增加onSelect事件,onSelect: function($treeTable, id){} * 2、增加beforeExpand事件,beforeExpand : function($treeTable, id){} 動態加載節點就靠beforeExpand 事件了。
1.4.2版本:(2011-09-03)
這個版本修復了bug,做了以下改進: * 1、修復了多個tableTree不在同個頁面的bug,並且可以讓不同的tableTree使用不同的主題。* 2、增加了controller的自定義標簽來控制可點擊的區域。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。