3

我有一个这样的树视图表:http: //jsfiddle.net/NPGUx/6/我正在使用:

$('.toggle').trigger('click');

隐藏所有加载元素,问题是我有太多行(如 1000-1500),导致消息“脚本运行缓慢,你想停止它吗?” 出现了三遍。

如何制定更好的解决方案来隐藏所有元素?

4

1 回答 1

2

这个怎么样:-

当您呈现记录并在最后使用此查询时,将您的类从折叠更改为展开,以隐藏除第 0 级以外的所有级别,或在呈现自身时隐藏所有其他级别 tr。

脚本

 $('tr[data-depth]').not('[data-depth=0]').hide(); // Or just render all tr's but this
      //with display:none css property.

更改您的过滤器以避免从所有 tr 过滤到此:-

      var rootDepth = $(this).closest('tr').data('depth');
      var findChildren = function (tr) {
        var depth = tr.data('depth');
        return tr.nextUntil('[data-depth=' + rootDepth + ']').filter(function(){
          return $(this).data('depth') > depth;
        });

html

 <tr data-depth="0" class="expand level0"> <!--Instead of collapse-->
    <td><span class="toggle expand"></span>Item 1</td> <!--Instead of collapse-->

演示

于 2013-05-16T02:33:38.290 回答