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

  问题:

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

     

  初步分析:

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

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

    

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

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

  深入分析:

    

 rightnode.on('checkchange', function(node, checked) {
node.expand();
node.attributes.checked = checked;
var flag = false;
for (var i = 0; i < changemark.length; i++)
if (changemark[i] == node.attributes.id) {
flag = true;
break;
}
if (!flag)
changemark.push(node.attributes.id); node.eachChild(function(child) {
child.ui.toggleCheck(checked);
child.attributes.checked = checked;
var flag = false;
for (var i = 0; i < changemark.length; i++)
if (changemark[i] == node.attributes.id) {
flag = true;
break;
}
if (!flag)
changemark.push(node.attributes.id); child.fireEvent('checkchange', child, checked);
});
}, rightnode);

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

    node.expand();

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

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

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

  注意事项:

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

  

Ext树控件第一次勾选父节点子节点没选中的更多相关文章

  1. EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中

    需求:EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中 效果:   /**   * 给树增加onCheck事件,首先使用cascadeCheck:false属性禁止全选,   ...

  2. Android 实现自己定义多级树控件和全选与反选的效果

    博文開始之前,首先要感谢大牛:(lmj623565791),本博文是在其博文http://blog.csdn.net/lmj623565791/article/details/40212367基础上进 ...

  3. C# WinForm TreeView选择父节点子节点全选

    //设置标志,防止死循环 bool check = false; public void TV_AfterCheck(object sender, TreeViewEventArgs e) { if ...

  4. 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  5. 基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  6. (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

  7. Qt实现表格树控件-支持多级表头

    目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...

  8. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

  9. jasonTree多选多级树控件

    jasonTree1.0 jasonTree多选多级树控件(名字是自己取),用于友好的展示树形结构的数据,并可以多选,传统的做法是在一个select的下拉框中显示一个可折叠的树结构,公司的需求人员这种 ...

随机推荐

  1. Asp.Net Mvc5新特性

    One ASP.NET:统一平台 BootStrap:免费Css响应式页面 路由标记属性:简单,控制器,操作,前缀,参数,URL ASP.NET WEB API 2:路由标记属性,Oauth2.0,O ...

  2. oracle启动,提示“LRM-00109: could not open parameter file”

    转载自   http://blog.sina.com.cn/s/blog_53e731b70101liku.html oracle启动,提示“LRM-00109: could not open par ...

  3. 关于extern对变量的使用

    extern 是声明全局的变量的意思. 例如在一个工程中有两个cpp,一个是test.cpp一个是main.cpp . 我们在test.cpp中定义了一个int num;但是我们在main.cpp中想 ...

  4. java生成UUID通用唯一识别码 (Universally Unique Identifier)

    转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...

  5. hibernate多对多映射文件详解(一)

    1.仓库表属性 public class WarehouseNew implements java.io.Serializable { // Fields private static final l ...

  6. Python 学习日记(第二周)

    从这周开始我就正式学习Python 语言了.以后每周都会有一篇有关于学习Python的见闻与大家分享! Python的安装 学习的第一步首先要有一个运行的环境.所以接下来介绍一下安装的步骤. 通过Py ...

  7. 异常处理:你不可能总是对的2 - 零基础入门学习Python033

    异常处理:你不可能总是对的2 让编程改变世界 Change the world by program 我们已经了解足够多的可能碰到的异常,那我们这节课就来谈谈如何检测这些异常并处理它们. 异常检测我们 ...

  8. secure_file_priv 配置项对数据导入导出的影响

    secure_file_priv  mysqld 用这个配置项来完成对数据导入导出的限制. 例如我们可以通过 select * from tempdb.t into outfile '/home/my ...

  9. 开心菜鸟系列学习笔记------------javascript(6)

    一.作用域链            1)函数的生命周期:            函数的生命周期分为创建和激活阶段(调用时),让我们详细研究它.            作用域链与一个执行上下文相关,变量 ...

  10. smartassembly 使用指南

    原文 http://www.cnblogs.com/hsapphire/archive/2010/09/21/1832758.html smartassembly 提供了一种用于优化和混淆你的 .ne ...