Javascript 触发器(';单击';)原因“;脚本运行缓慢,是否要停止;
我有这样一个treeview表:我正在使用:Javascript 触发器(';单击';)原因“;脚本运行缓慢,是否要停止;,javascript,jquery,html,Javascript,Jquery,Html,我有这样一个treeview表:我正在使用: $('.toggle').trigger('click'); 要隐藏onload中的所有元素,问题是我有太多的行(如1000-1500),因此导致消息“Script正在缓慢运行,是否要停止它?”出现三次 如何才能更好地隐藏所有元素?如何:- 在渲染记录时将类从“折叠”更改为“展开”,并在最后使用此查询隐藏除第0级以外的所有级别,或在渲染自身时隐藏所有其他级别的tr 剧本 更改您的筛选器以避免从所有tr筛选到此:- var rootDep
$('.toggle').trigger('click');
要隐藏onload中的所有元素,问题是我有太多的行(如1000-1500),因此导致消息“Script正在缓慢运行,是否要停止它?”出现三次
如何才能更好地隐藏所有元素?如何:-
在渲染记录时将类从“折叠”更改为“展开”,并在最后使用此查询隐藏除第0级以外的所有级别,或在渲染自身时隐藏所有其他级别的tr
剧本
更改您的筛选器以避免从所有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
项目1
为此使用setTimeout,它将防止“scriptrunning slow”消息中出现长时间运行的循环。谢谢,但我尝试了它,在这种情况下不起作用。谢谢!这对于onload非常有效,但是当我单击一个子项时,消息会再次显示OK,因此当您单击一个子项时,scipt会挂起?是的,只有当我单击第一个子项(data depth=“0”)时,才可以尝试此
var depth=tr.data('depth');返回tr.nextUntil('[data depth='+depth+'])代码>是的,rootDepth不起作用不知道为什么,但是有了depth就完美了。如果您将来想为其他人编辑答案,您可以编辑您的答案,谢谢!你让我开心。
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-->