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 相关文章推荐
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
JavaScript轮播图简单制作方法
Feb 20 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
微信小程序实现折线图的示例代码
Jun 07 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
Javascript类型判断相关例题及解析
Aug 26 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 session常见问题集锦及解决办法总结
2007/03/18 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
基于jquery实现左右上下移动效果
2018/05/02 jQuery
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
Python管理Windows服务小脚本
2018/03/12 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Python解析json时提示“string indices must be integers”问题解决方法
2019/07/31 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
爱游人:Travelliker
2017/09/05 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
退伍军人感言
2015/08/01 职场文书
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫