码迷,mamicode.com
首页 > Web开发 > 详细

Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

时间:2018-04-28 19:36:06      阅读:978      评论:0      收藏:0      [点我收藏+]

标签:比较   images   var   div   控制   显示   清除   ===   子节点   

Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

Jquery EasyUI Combotree单选框,Jquery EasyUI Combotree只能选择叶子节点

EasyUI Combotree叶子节点增加单选框

 

 

================================

?Copyright 蕃薯耀 2018年4月28日

http://www.cnblogs.com/fanshuyao/

 

建议使用方式三(完美版)

 

一、方式一,最简单(只能单选叶子节点,叶子节点前面无多选框)

Js代码  技术分享图片
  1. $("xxxId").combotree({  
  2.     data : [{……},{……},{……}],//数据省略  
  3.     required: false,  
  4.     onBeforeSelect : function(node){  
  5.         if(!$(this).tree("isLeaf", node.target)){//如果不是叶子节点,不让选择  
  6.             return false;  
  7.         }  
  8.     }  
  9. });  

 

 二、方式二:控制只能选一项,选中某一项后后面不能再勾选(体验比较生硬)

Js代码  技术分享图片
  1. $("xxxId").combotree({  
  2.     multiple : true,//设置可以多选,显示多选框,不设置不会出现多选框  
  3.     data : [{……},{……},{……}],//数据省略  
  4.     required: false,  
  5.     checkbox : true,//显示多选框  
  6.     onlyLeafCheck : true,//只在叶子节点显示多选框  
  7.     onBeforeSelect : function(node){  
  8.         if(!$(this).tree("isLeaf", node.target)){//如果不是叶子节点,不让选择  
  9.             return false;  
  10.         }  
  11.     },  
  12.     onBeforeCheck : function(node, checked){//控制只能选一项  
  13.         if(checked){//当前为选中操作  
  14.             var nodes = $(this).tree("getChecked");  
  15.             //控制只能选一项,选中某一项后后面不能再勾选  
  16.             if(nodes.length == 0){  
  17.                 return true;  
  18.             }else{  
  19.                 return false;  
  20.             }  
  21.         }else{//当前为取消选中操作  
  22.             return true;  
  23.         }  
  24.     }  
  25. });  

 

 三、方式三:随意选择任意一项,但只能选一项(完美版)

Js代码  技术分享图片
  1. $("xxxId").combotree({  
  2.     multiple : true,//设置可以多选,显示多选框,不设置不会出现多选框  
  3.     data : [{……},{……},{……}],//数据省略  
  4.     required: false,  
  5.     checkbox : true,//显示多选框  
  6.     onlyLeafCheck : true,//只在叶子节点显示多选框  
  7.     onBeforeSelect : function(node){  
  8.         $(this).tree("check", node.target);//控制点击文字时也能勾选  
  9.         return false;//避免不是选择勾选框而是点击文字出现黄色的选中条纹  
  10.     },  
  11.     onBeforeCheck : function(node, checked){//控制只能选一项  
  12.         if(checked){//当前为选中操作  
  13.             var nodes = $(this).tree("getChecked");  
  14.             //控制只能选一项,选中某一项后后面不能再勾选  
  15.             if(nodes.length > 0){  
  16.                 for(var i=0; i<nodes.length; i++){  
  17.                     $(this).tree("uncheck", nodes[i].target);//清除之前选中的项  
  18.                 }  
  19.             }  
  20.         }  
  21.     }  
  22. });  

 

 

 方法三中:onBeforeSelect方法返回false,避免第一次点击文字选中后,再重新打开选择,不点击文字,直接勾选多选框,第一次点击的文字有黄色背景的情况,如下:


技术分享图片
 

 

 

================================

?Copyright 蕃薯耀 2018年4月28日

http://www.cnblogs.com/fanshuyao/

Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

标签:比较   images   var   div   控制   显示   清除   ===   子节点   

原文地址:https://www.cnblogs.com/fanshuyao/p/8968908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!