我有一个像这样的树视图表:http://jsfiddle.net/NPGUx/6/我正在使用:
$('.toggle').trigger('click');
隐藏所有元素onload,问题是我有太多行(如1000-1500),因此导致消息“脚本运行缓慢,你想阻止吗?”看起来像三次。
如何制作更好的解决方案来隐藏所有元素?
答案 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;
});
<tr data-depth="0" class="expand level0"> <!--Instead of collapse-->
<td><span class="toggle expand"></span>Item 1</td> <!--Instead of collapse-->