Ext树控件第一次勾选父节点子节点没选中

时间:2022-06-04 04:42:56

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

  问题:

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

    Ext树控件第一次勾选父节点子节点没选中 

  初步分析:

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

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

    Ext树控件第一次勾选父节点子节点没选中

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

    然后加上该参数,接着查看然后发现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&num; WinForm TreeView选择父节点子节点全选

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

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

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

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

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

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

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

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

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

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

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

  9. jasonTree多选多级树控件

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

随机推荐

  1. TreeView控件使用

    treeView1.SelectedNode = treeView1.Nodes[0];  //选中当前treeview控件的根节点为当前节点添加子节点:  TreeNode tmp; tmp = n ...

  2. mysql 特殊字符

    1.倒引号,比如表中有一个字段为desc,在mysql中desc是关键字,如何表明desc是字段呢? 有两种办法:desc使用倒引号引起来,或者在desc前面加上表名,如下:mysql> sel ...

  3. HDU-4655 Cut Pieces 数学&comma;贪心

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4655 先不考虑相临的有影响,那么总数就是n*prod(ai),然后减去每个相邻的对总数的贡献Σ( Mi ...

  4. 基于开源 Openfire 聊天服务器 - 开发Openfire聊天记录插件&lbrack;转&rsqb;

    上一篇文章介绍到怎么在自己的Java环境中搭建openfire插件开发的环境,同时介绍到怎样一步步简单的开发openfire插件.一步步很详细的介绍到简单插件开发,带Servlet的插件的开发.带JS ...

  5. deepin添加新的打开方式软件

    在/usr/share/applications文件夹中,你可以先打开一个其他的软件比如geany,然后根据geany的配置配置你所需要的新软件

  6. 采购申请 POCIRM-001:ORA-01403&colon; 无论数据未找到

    今天就让同事帮忙看问题.当请求生成采购订单,在销售模块错误提交销售订单 查看请求日志 +-------------------------------------------------------- ...

  7. Android Tv 中的按键事件 KeyEvent 分发处理流程

    这次打算来梳理一下 Android Tv 中的按键点击事件 KeyEvent 的分发处理流程.一谈到点击事件机制,网上资料已经非常齐全了,像什么分发.拦截.处理三大流程啊:或者 dispatchTou ...

  8. js代码之编程习惯

    编程习惯: 异常处理 如果你没有使用异常处理的习惯,这可能是因为你并未真正的理解它的作用.当你正确使用异常处理之后,你会发现你的代码最显著的变化就是:少了很多的 if-else 语句 . 虽然在 JS ...

  9. Ubuntu 14&period;04 installation &amp&semi; bugs on Alienware-13

    列一下Alienware 13笔记本配置: Processor: Intel Core 5th Generation i5-5200U Processor (3M Cache, up to 2.70 ...

  10. 25&plus;开源的在线购物软件&lpar;PHP&comma; JavaScript 和 ASP&period;Net&rpar;

    25 +免费开源的电子商务解决方案,提供了建立一个在线购物所有主要功能,并能够连接到一个支付处理系统1. Magento Magento是一套专业开源的PHP电子商务系统.Magento设计得非常灵活 ...