ztree选父不选子选子不选父
var setting = {
data: {
simpleData: {
enable: true
}
}
,check: {
enable: true
, chkStyle: 'checkbox'
//,chkboxType:{ "Y": "", "N": "" }
}
,callback:{
onCheck:function(e,treeId, treeNode){
if(treeId == "treeDemo") {
var zTreeObj = $.fn.zTree.getZTreeObj(treeId);
optParOrSon(treeId, treeNode,zTreeObj);
}
}
}
};
//获取所有子节点
var getChildsByTreeNode = function(treeNode,childsArr){
var childsArr = childsArr || [];
if (treeNode.isParent) {//是父节点则获取所有子节点
var childs = treeNode.children;
for(var i in childs){
childsArr.push(childs[i]);
getChildsByTreeNode(childs[i],childsArr);
}
}
return childsArr;
}; //获取所有父节点
var getParsByTreeNode = function(treeNode,parsArr){
var parsArr = parsArr || [];
var parNode = treeNode.getParentNode();
if(parNode){
parsArr.push(parNode);
getParsByTreeNode(parNode,parsArr);
}
return parsArr;
}
/**
* 选父不选子,选子不选父
* */
var optParOrSon = function(treeId,treeNode,zTreeObj){
if(treeNode.checked){
//取消全部后代节点的选中
var childNodes = getChildsByTreeNode(treeNode);
for(var i in childNodes){
zTreeObj.checkNode(childNodes[i], false, false);
}
//同时全部祖先节点也不能被选中
if(treeNode.getParentNode()){
var parNodes = getParsByTreeNode(treeNode);
for(var i in parNodes){
zTreeObj.checkNode(parNodes[i], false, false);
}
}
}
};
//展开选中节点
var expandCheckedNode = function(){
//获取所有选中状态的节点
var checkedNodes = zTreeObj.getCheckedNodes(true);
for(var i in checkedNodes){
var checkedParAll = getParsAll(checkedNodes[i]);
for(var j in checkedParAll){
zTreeObj.expandNode(checkedParAll[j],true,false);
}
}
};
ztree选父不选子选子不选父的更多相关文章
- ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)
本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据): 现有全省各地区静态JSON数据,现在想通过Url参数,动态控制是否显 ...
- 复选框(checkox)全选、全不选、反选、获得选中项值的用例
HTML部分: <div class="all"> <ul> <li><input type="checkbox" v ...
- js 复选框 全选都选 如果某一个子复选框没选中 则全选按钮不选中
<!DOCTYPE HTML> <html> <head> <meta charset=UTF-8> <title>js 复选框 全选都选 ...
- CheckedListBoxControl 实现复选框的单选与多选功能
由于工作需要,需要实现复选框的单选与多选功能,找了好多资料都不是很全,经过两天苦苦的挖挖挖,终于完成啦O(∩_∩)O哈哈~ 用DEV控件中的CheckedListBoxControl控件,当然VS中的 ...
- js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false
用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种 ...
- Android开发CheckBox控件,全选,反选,取消全选
在Android开发中我们经常会使用CheckBox控件,那么怎么实现CheckBox控件的全选,反选呢 首先布局我们的界面: <?xml version="1.0" enc ...
- js之全选即点击全选标签可选择全部复选框
目标效果:网页全选功能,即点击全选标签可选择全部复选框 实现代码如下 <!DOCTYPE html> <html lang="en"> <head&g ...
- Javascript全选,反选,全不选的实现代码
使用js实现全选.反选.全不选. 代码如下: <html> <head> <script type="text/javascript"> fun ...
- 用jQuery实现(全选、反选、全不选功能)
在jQuery选择器的基础下我们实现一个全选,反选,全不选功能! <script type="text/javascript"> $(function ( ...
- jquery一键控制checkbox全选,反选,全不选。
jquery attr()方法获取标签的 checked 会有问题,所以用了 prop() 方法. Hml的checkbox没有加name,只用了 div 嵌套. 如有更好的方法,望指点!! //全选 ...
随机推荐
- RSA加密算法破解及原理
- RSA算法原理 - - 加密与解密 在RSA中,Bob想给Alice发一个消息X,Alice公钥为(e,n),私钥为(n,d). 加密和解密的过程如下: - RSA暴力破解 RSA暴力破解,简单理 ...
- 10.JavaCC官方入门指南-例5
例5:计算器--添加乘除法运算 1.calculator2.jj 根据上一个例子,可知要添加乘法和除法运算是很简单的,我们只需在词法描述部分添加如下两个token: TOKEN : { < TI ...
- 重温《NoSQL精粹》
前言 在网上有关Redis相关文章满天飞的时候,它是什么,用于解决什么问题,有哪些相类似的技术,与传统的关系型数据库有哪些差别,什么时候使用?这个时候我决定重温一下<NoSQL精粹>. 也 ...
- fiddler---Fiddler工具栏功能介绍
前几篇简单的介绍了Fiddler的功能,对于工具栏的操作只是简单了解,今天写一篇工具栏功能介绍和操作. 工具栏功能介绍 工具栏内容 工具栏依次是:会话保存,数据重放(Replay),转到(GO),数据 ...
- react相关小技巧
一.我们在项目中切换路由的时候可能会遇到 Warning: setState(...): Can only update a mounted or mounting component. This u ...
- envoy的配置文件的样子
yaml文件 admin: access_log_path: /tmp/admin_access.log address: socket_address: protocol: TCP address: ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十二周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十二周学习总结 项 目 内 容 这个作业属于哪个课程 https://www.cnblogs.co ...
- 如何下载安装MySQL 解压版和安装版以及2个版本的区别
参考链接:https://blog.csdn.net/qq_33800083/article/details/80722829
- testNG xml文件详解
网上看到一篇整理的非常详细的xml文件详解,分享一下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 < ...
- selenium定位元素的八种方法
web driver提供了八种元素定位的方法: id, name, class name, tag name, link text, partial link text, xpath, css sel ...