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 嵌套. 如有更好的方法,望指点!! //全选 ...
随机推荐
- SmobilerService 开发者日志(一):什么是 SmobilerService ,它为开发者带来了什么价值?
初见 SmobilerService 你会发现几个版本,以及一些价格. 所以,"Smobiler 是要收费了吗?" 这是开发团队在幕后悄悄观察 Service 推广开始后,用户向运 ...
- [b0020] python 归纳 (六)_模块变量作用域
test_module2.py: # -*- coding: utf-8 -*-"""测试 模块变量的作用域 总结:1 其他模块的变量,在当前模块的任何地方,包括函数都可 ...
- PHP将字符串转数组
explode(',',$arr_string) //将字符串转数组 $arr_string = '1,2,3'; $arr = explode(',',$arr_string); dump($arr ...
- 『005』Web集群
『006』索引-The Web cluster 准备更新中
- 批量bat脚本复制文件或文件夹
主要用于在本地下,复制文件或文件夹到当前文件夹 @echo off echo 复制文件或文件夹到当前文件夹(复制文件选择[],复制文件夹选择[]) set /p num=输入选择的数字: : set ...
- JMeter jp@gc - stepping thread group插件
这是一个出单接口压力测试的小例子,了解一下压力测试最最基础的基础.出单接口是用来保险出单的,不需要在UI界面下一步下一步的出单,接口一调数据入库完事~~~.再啰嗦一句接口应该都知道是什么吧?一个完整的 ...
- vim考场配置
syntax on set number set mouse=a set autoread set showmatch set autoindent set smartindent set tabst ...
- LINUX下查看点云图————point cloud(.ply .vtk .pcd)
首先,你要确定点云的格式:.pcd(.vtk) 还是 .ply 如果是.pcd(.vtk),那么可以用pcl工具查看: 1.安装pcl,官网链接点击打开链接 sudo add-apt-reposito ...
- ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于Wi-Fi模块(ESP8266)AT指令TCP透传方式,MQTT通信控制升级(加入数据校验)
前言 这节演示下,上两节写的利用MQTT来控制STM32控制的程序 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 首先BootLo ...
- Python调用C的DLL(动态链接库)
开发环境:mingw64位,python3.6 64位 参考博客: mingw编译dll: https://blog.csdn.net/liyuanbhu/article/details/426123 ...