zoukankan      html  css  js  c++  java
  • Ext树控件第一次勾选父节点子节点没选中

      项目中同事提出了这样一个bug

      问题:

        第一次勾选父节点子节点竟然没选中,逆天了啊

         

      初步分析:

        可能是之前代码的逻辑错误造成的,随进入调试阶段...

        调试中发现该参数为空(原来写代码的也太没素质了),

        

        没有内容然后想到没有内容导致下面的子节点不能便利出来,所以出来后没有选中,嘿嘿

        然后加上该参数,接着查看然后发现bug依然存在,这次该参数有了,但是里面的元素还是没有啊,纠结....

      深入分析: 

        
     1 rightnode.on('checkchange', function(node, checked) {
     2         node.expand();
     3         node.attributes.checked = checked;
     4         var flag = false;
     5         for (var i = 0; i < changemark.length; i++)
     6             if (changemark[i] == node.attributes.id) {
     7             flag = true;
     8             break;
     9         }
    10         if (!flag)
    11             changemark.push(node.attributes.id);
    12             
    13         node.eachChild(function(child) {
    14             child.ui.toggleCheck(checked);
    15             child.attributes.checked = checked;
    16             var flag = false;
    17             for (var i = 0; i < changemark.length; i++)
    18                 if (changemark[i] == node.attributes.id) {
    19                 flag = true;
    20                 break;
    21             }
    22             if (!flag)
    23                 changemark.push(node.attributes.id);
    24                 
    25             child.fireEvent('checkchange', child, checked);
    26         });
    27     }, rightnode);
    View Code

        逐行看代码,怀疑这行代码有问题,节点展开事件,Ext可能把它做成异步的,上网一查还真是.

        node.expand();

        网上一哥们说这样写就行了,延长一毫秒

        setTimeout(function () { nodeExpand(node); }, 1); //延迟一毫秒执行

        但是经过本屌测试,这明显不行,然后延长至十毫秒,解决问题.

      注意事项:

        1.setTimeout 执行的函数带参数的写法
     
      思维拓展:
       1.
    node.expand();我有想过这个函数有没有回调函数,如果在回调函数里面处理,岂不美哉,但是官方API没有查到,
        如果哪位大神知道好的解决方法,望告诉小弟.


      

  • 相关阅读:
    P3746 [六省联考2017]组合数问题 矩阵乘法
    P3322 [SDOI2015]排序 暴搜
    P2877 [USACO07JAN]Cow School G 斜率优化+分数规划
    P3283 [SCOI2013]火柴棍数字 DP
    AT2005 [AGC003E] Sequential operations on Sequence 单调栈+二分+差分
    CF568C New Language 2-SAT
    P4410 [HNOI2009]无归岛 仙人掌图
    CF505D Mr. Kitayuta's Technology 并查集 拓扑排序
    Algorithms: Design and Analysis, Part 1
    双目测距项目
  • 原文地址:https://www.cnblogs.com/kaipengli/p/3881167.html
Copyright © 2011-2022 走看看