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 相关文章推荐
CheckBox 如何实现全选?
Jun 23 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
Mar 22 Javascript
JQuery index()方法使用代码
Jun 02 Javascript
JS运行耗时操作的延时显示方法
Nov 19 Javascript
jstree的简单实例
Dec 01 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
删除table表格行的实例讲解
Sep 21 Javascript
Vue实现按钮旋转和移动位置的实例代码
Aug 09 Javascript
使用pkg打包Node.js应用的方法步骤
Oct 19 Javascript
小程序自定义日历效果
Dec 29 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
php mssql 时间格式问题
2009/01/13 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
jquery分页插件pagination使用教程
2018/10/23 jQuery
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
Python 3.8 新功能全解
2019/07/25 Python
python求绝对值的三种方法小结
2019/12/04 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
AJax面试题
2014/11/25 面试题
单位消防安全责任书
2014/07/23 职场文书
员工福利申请报告
2015/05/15 职场文书
周一问候语大全
2015/11/10 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL