easyui tree中的onCheck事件的一些处理办法

需求:

        有一棵这样的树,点击父节点时,子节点要全勾,取消父节点时,子节点又要全部取消勾选,但是,还有子节点全部取消勾选的同时,还得让父节点的勾选保留。

想法:

        第一想法就是取消级联检查自己实现oncheck事件啊。。。但是,要初始化勾选的时候,发现进入了死循环或者总是达不到满意的效果。。。。

解决办法:

        oncheck事件正常实现,在初始化勾选的时候避开树的oncheck事件就好。

        那么问题来了,怎么避免,想到急用checkbox的选中事件,可恶的是,easyui的tree里面的checkbox居然是span!!!操作样式实现勾选效果的。既然你操作css那我我也操作。下面上代码:

 		onCheck:function(node,checked) {
 			if (node.attributes == 1 && !checked) { // 父节点勾选子节点全选
 				var child = $('#departTree').tree('getChildren', node.target);
 				for(var i =0;i<child.length;i++){
					$('#departTree').tree('uncheck',child[i].target);
 				}
 			}
 			if (node.attributes == 1 && checked) { // 父节点取消勾选子节点也全部取消
 				var child = $('#departTree').tree('getChildren', node.target);
 				for(var i =0;i<child.length;i++){
					$('#departTree').tree('check',child[i].target);
 				}
 			}
 		}
注:attributes这里我用来做父节点根节点的标志,0表示根节点,1表示父节点,2表示子节点

然后再初始化勾选的时候

		var node = $('#departTree').tree('find', deptIdArr[i]);				
		var v = node.target;
		var $v =$(v);
		$v.children('.tree-checkbox').removeClass('tree-checkbox0').addClass('tree-checkbox1');	
注:deptIdArr[i]这边表示节点的id

操作CSS来模仿勾选效果,不触发oncheck事件。这样就能达到想要的初始得效果了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值