easyUI tree设置

最近更改老的项目中树的选择问题,选中与非选中

html部分

<ul id="tt" class="easyui-tree" data-options="animate:true,checkbox:true"></ul>

js部分:

function formatEdit(val, row) {
				return "<a href=\"javascript:openMenuSetDialog(" + row.id +
					")\"><img style='margin-top:4px' src='/static/images/edit.gif'/></a>";
			}

			function openMenuSetDialog(roleId) {
				$("#dlg2").dialog("open").dialog("setTitle", "权限菜单设置");
				var check_switch = false; //定义 boolean 变量  作为初始化onCheck的开关
				$("#tt").tree({
					parentField: 'pid',
					lines: true,
					rootProperty: 'modules',
					checkbox: true, //是否带复选框
					cascadeCheck: false, //定义是否层叠选中状态。
					animate: true, //当节点展开或折叠是否显示动画效果。
					checkcheck: true, //待查询是什么
					url: '/admin/role/loadCheckMenuInfo?parentId=-1&roleId=' + roleId,
					onBeforeLoad: function(node, param) {
						check_switch = false; //初始化时  置为否  关闭onCheck事件开关
					},
					onLoadSuccess: function(node, data) {
						check_switch = true; //数据 加载成功 置为 true 打开onCheck事件开关
						$("#tt li:eq(0)").find("div").addClass("tree-node-selected");   //设置第一个节点高亮
						var n = $("#tt").tree("getSelected");  
						if(n!=null){  
							$("#tt").tree("select",n.target);    //相当于默认点击了一下第一个节点,执行onSelect方法  
							$("#tt").tree("expand",n.target);    //默认展开第一个节点
						}
					},
					onSelect:function(node){
						$(this).tree(node.state === 'closed' ? 'expand' : 'collapse', node.target);  
					},
					onCheck: function(node, checked) {
						if (check_switch) { // 数据加载成功  且是用户点击方才触发事件
							check_switch = false; //为了防止递归调用死循环 造成栈溢出 先关闭
							//当选中节点的时候,把对应的父节点选中
							if (checked) {
								var parent = $("#tt").tree('getParent', node.target);
								//var children = $("#tt").tree('getChildren');
								if (parent) {
									//alert(1);
									$('#tt').tree('check', parent.target);
								}
								check_switch = true; //打开  父节点选中后
								//节点选中,则check所有子节点
								var children = $("#tt").tree('getChildren', node.target);
								if (children) {
									for (var i = 0; i < children.length; i++) {
										if (children[i]) {
											$('#tt').tree('check', children[i].target);
										}
									}
								}
								checkNode($("#tt").tree("getParent", node.target));
							} else {
								cancelSubNode(node); //判断是否可以取消父节点
								check_switch = true;
								//父节点取消选中,则uncheck所有子节点
								var children = $("#tt").tree('getChildren', node.target);
								if (children) {
									for (var i = 0; i < children.length; i++) {
										if (children[i]) {
											$('#tt').tree('uncheck', children[i].target);
										}
									}
								}
							}

						}
					}
				});

				$("#roleId").val(roleId);
			}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值