Jquery插件之treetable

DATE: 2016-11-10 / VIEWS: 976

下载地址:http://ludo.cubicphuse.nl/jquery-treetable/

用法下载页面说得比较清楚了,我在使用过程中模板代码如下:
<tr data-tt-id="{:$value['id']}" data-tt-parent-id="{:$value['parentid']}">
<td>
...
</td>
</tr>

在指定节点展开的时候,一直提示找不到父节点,本人比较愚钝,就这个问题找了整整一上午,下午仔细阅读源码,才发现顶级分类{:$value['parentid']}的值为0,treetable的判断是
Node.prototype.reveal = function() {
      if (this.parentId != null) {
        this.parentNode().reveal();
      }
      return this.expand();
    };

这里0不等于null ,所以,当已经是顶级的时候,还往上找父节点,肯定是找不着了。
把模板代码改成如下:
<tr data-tt-id="{:$value['id']}" data-tt-parent-id="{:$value['parentid']?$value['parentid']:''}">
<td>
...
</td>
</tr>

终于不再提示找不着父节点了。

最后把调用代码发出来
<script type="text/javascript">
//默认全部收缩
    $("#category_list").treetable({ expandable: true });
    <!-- if($_GET['pid']) -->
        try {
          $("#category_list").treetable("reveal", "{:$_GET['pid']}");//这里如果程序返回pid[父级ID],就展开此ID节点。
        }catch(error) {
          alert(error.message);
        }
    <!-- end -->
//下面的代码是鼠标指向换色
    $("#category_list tbody").on("mouseover", "tr", function() {
        $(".tr_over").not(this).removeClass("tr_over");
        $(this).addClass("tr_over");
    });
</script>