触发器('click')导致“脚本运行缓慢,你要阻止吗?”

时间:2013-05-16 02:23:32

标签: javascript jquery html html5

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

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

隐藏所有元素onload,问题是我有太多行(如1000-1500),因此导致消息“脚本运行缓慢,你想阻止吗?”看起来像三次。

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

1 个答案:

答案 0 :(得分:2)

这个怎么样: -

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

脚本

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

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

      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-->

Demo