Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 触发器(';单击';)原因“;脚本运行缓慢,是否要停止;_Javascript_Jquery_Html - Fatal编程技术网

Javascript 触发器(';单击';)原因“;脚本运行缓慢,是否要停止;

Javascript 触发器(';单击';)原因“;脚本运行缓慢,是否要停止;,javascript,jquery,html,Javascript,Jquery,Html,我有这样一个treeview表:我正在使用: $('.toggle').trigger('click'); 要隐藏onload中的所有元素,问题是我有太多的行(如1000-1500),因此导致消息“Script正在缓慢运行,是否要停止它?”出现三次 如何才能更好地隐藏所有元素?如何:- 在渲染记录时将类从“折叠”更改为“展开”,并在最后使用此查询隐藏除第0级以外的所有级别,或在渲染自身时隐藏所有其他级别的tr 剧本 更改您的筛选器以避免从所有tr筛选到此:- var rootDep

我有这样一个treeview表:我正在使用:

$('.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-->