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 相关文章推荐
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
js 为label标签和div标签赋值的方法
Aug 08 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
jQuery中not()方法用法实例
Jan 06 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
vue 全局封装loading加载教程(全局监听)
Nov 05 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
PHP中的CMS的涵义
2007/03/11 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
人资专员岗位职责
2014/04/04 职场文书
2014校长四风问题对照检查材料思想汇报
2014/09/16 职场文书
经理岗位职责范本
2015/04/15 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers
python数字图像处理之图像的批量处理
2022/06/28 Python