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类库D
Oct 24 Javascript
浅析javascript操作 cookie对象
Dec 26 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
js中document.referrer实现移动端返回上一页
Feb 22 Javascript
Angular2安装angular-cli
May 21 Javascript
浅谈关于.vue文件中style的scoped属性
Aug 19 Javascript
vue中如何让子组件修改父组件数据
Jun 14 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
小程序实现长按保存图片的方法
Dec 31 Javascript
vue 验证两次输入的密码是否一致的方法示例
Sep 29 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
文件系统基本操作类
2006/11/23 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
python 统计列表中不同元素的数量方法
2018/06/29 Python
python机器学习之KNN分类算法
2018/08/29 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python 获取url中的参数列表实例
2018/12/18 Python
Python根据成绩分析系统浅析
2019/02/11 Python
python数据爬下来保存的位置
2020/02/17 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
投标单位介绍信
2014/01/09 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
规划编制实施方案
2014/03/15 职场文书
单位委托书范本
2014/04/04 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫