Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码


Posted in Javascript onAugust 22, 2017

TreePanel继承自Panel,在ExtJS中使用树控件含有丰富的属性和方法实现复杂的功能。其中Ext.tree.TreeNode代表一个树节点,比较常用的属性包括text、id、icon、checked等、异步树Ext.tree.AsyncTreeNode、树加载器Ext.tree.TreeLoader。下面介绍Extjs 中的 Treepanel 实现菜单级联选中效果。

在 treepanel 里添加以下代码即可实现级联选中效果

主要实现了以下效果:

1.点击父级批量设置所有子节点选中状态

2.点击当前节点寻找所有父级并设置选中状态

3.取消当前节点并取消所有子节点选中状态

4.取消当前节点根据需要取消上级节点的选中状态

listeners:{
  checkchange:function(node,checked,eOpts){
    // 批量设置子节点选中效果
    function setChildChecked(pNode){
      pNode.set('checked',checked);
      pNode.eachChild(function(child){
        arguments.callee(child);
      })
    }
    setChildChecked(node);
    // 当前节点取消选中时 需要判断当前节点的父节点下的所有子节点是否都不是选中状态
    function setParentCheckedFalse(currentNode){
      var parentNode = currentNode.parentNode,
        isValid = true;
      if(parentNode != null){
        if(checked == false){
          parentNode.eachChild(function (child) {
            if(child.get('checked') != false){
              isValid = false;
              return false;
            }
          });
          if(isValid){
            parentNode.set('checked',checked);
          }
        }else{
          parentNode.set('checked',true);
        }
        arguments.callee(parentNode)
      }
    }
    setParentCheckedFalse(node);
  }
}

总结

以上所述是小编给大家介绍的Extjs 中 Treepanel 实现菜单级联选中效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript整除实现代码
Nov 23 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
关于使用js算总价的问题
Jun 23 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
详解js中的原型,原型对象,原型链
Jul 16 Javascript
bootstrap3-dialog-master模态框使用详解
Aug 22 #Javascript
关于JS与jQuery中的文档加载问题
Aug 22 #jQuery
bootstrap confirmation按钮提示组件使用详解
Aug 22 #Javascript
bootstrap multiselect下拉列表功能
Aug 22 #Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 #Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 #Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
Aug 22 #Javascript
You might like
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
Python中生成器和yield语句的用法详解
2015/04/17 Python
Python实现选择排序
2017/06/04 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
python自动生成证件号的方法示例
2021/01/14 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
Molton Brown美国官网:奢华美容、香水、沐浴和身体护理
2020/09/02 全球购物
升学宴演讲稿
2014/09/01 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
预备党员考察意见范文
2015/06/01 职场文书
最美乡村教师观后感
2015/06/11 职场文书
公司安全管理制度范本
2015/08/05 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python