实现左边勾选,点击添加后,右边出现勾选出来的树结构结果,不勾选的不显示
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<title>easyui checkbox tree授权选择删除添加示例</title>
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css"/>
<script type="text/javascript" src="../../jquery.min.js"></script>
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
<div style="float:left"><div class="easyui-panel" title="授权树" style="width:200px;height:320px"><ul id="tt1" class="easyui-tree" data-options="url:'Cascade-Select.json',method:'get',checkbox:true"></ul></div></div>
<div style="float:left;width:50px;text-align:center;padding-top:130px;line-height:20px" id="dvOp"><a href="#">-》</a>
<a href="#">《-</a></div>
<div style="float:left"><div class="easyui-panel" title="已授权" style="width:200px;height:320px"><ul id="tt2" class="easyui-tree" data-options="checkbox:true"></ul></div></div>
<script>
function moveNode(source, target, node) { //建立节点的路径
var pNode, pNodeData = [], pid;
pNode = source.tree('getParent', node.target); //收集父节点
pid = pNode.id;
do {
if (pNodeData.length > 0) pNodeData[pNodeData.length - 1].pid = pNode.id; //更新上一个父节点的父节点id
pNodeData.push({ text: pNode.text, id: pNode.id });
}
while (pNode = source.tree('getParent', pNode.target));
//从根节点建立路劲
for (var i = pNodeData.length - 1; i >= 0; i--) {
if (!target.tree('find', pNodeData[i].id)) target.tree('append', { parent: pNodeData[i].pid ? target.tree('find', pNodeData[i].pid).target : null, data: { text: pNodeData[i].text, id: pNodeData[i].id} });
}
target.tree('append', { parent: target.tree('find', pid).target, data: { text: node.text, id: node.text} });
}
function treeNodeSelect(cancel) {//将原树中数据移动到目标树中
var source = $(cancel ? '#tt2' : '#tt1'), target = $(cancel ? '#tt1' : '#tt2');
var checked = source.tree('getChecked');
if (checked.length == 0) { alert('请选择节点!'); return false }
for (var i = checked.length - 1; i >= 0; i--) {
if (source.tree('isLeaf', checked[i].target)) {//只针对叶子节点,父节点会自动通过getParent方法获取后自动建立
moveNode(source, target, checked[i]);
}
}
//移除节点
for (var i = checked.length - 1; i >= 0; i--) source.tree('remove', checked[i].target);
}
$(function () {
$('#dvOp a').click(function () {
treeNodeSelect(this.innerHTML == '《-');
return false;
});
});
</script>
</body>
</html>