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 相关文章推荐
怎么判断js脚本加载完成
Feb 28 Javascript
Javascript中获取对象的原型对象的方法小结
Feb 25 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
拖动时防止选中
Feb 03 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
vue组件编写之todolist组件实例详解
Jan 22 Javascript
JavaScript提升机制Hoisting详解
Oct 23 Javascript
详解如何在JS代码中消灭for循环
Dec 11 Javascript
在antd Form表单中select设置初始值操作
Nov 02 Javascript
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 Javascript
javascript实现倒计时提示框
Mar 02 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
新52大事件
2020/03/03 欧美动漫
PHP与SQL注入攻击[三]
2007/04/17 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
Table冻结表头示例代码
2013/08/20 Javascript
Javascript的&&和||的另类用法
2014/07/23 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
js实现登录与注册界面
2017/11/01 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
python奇偶行分开存储实现代码
2018/03/19 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
介绍一下内联、左联、右联
2013/12/31 面试题
简单而又朴实的个人求职信分享
2013/12/12 职场文书
房产销售经理职责
2013/12/20 职场文书
青年文明号服务承诺
2014/03/31 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
同事离别感言
2015/08/04 职场文书
PYTHON InceptionV3模型的复现详解
2022/05/06 Python