extjs4 tree 节点选中问题 当选中父节点,子节点会自动选中,所有子节点取消,父节点也会取消,有递归调用哦 ,废话不多说 直接上代码
ps: 以下 只是关键
ps: 以下 只是关键
1
2
3
4
5
6
7
8
9
10
11
|
//右侧菜单树
var centerPanel = Ext.create(
'Ext.tree.Panel'
, {
……
listeners:{
checkchange:function (node,checked,eOpts){
//选中事件
setChildChecked(node,checked);
setParentChecked(node,checked);
}
}
});
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
function setChildChecked(node,checked){
node.expand();
node.set({checked:checked});
if
(node.hasChildNodes()){
node.eachChild(function(child) {
setChildChecked(child,checked);
});
}
}
function setParentChecked(node,checked){
node.set({checked:checked});
var parentNode = node.parentNode;
if
(parentNode !=
null
){
var flag =
false
;
parentNode.eachChild(function(child) {
if
(child.data.checked ==
true
){
flag =
true
;
}
});
if
(checked ==
false
){
if
(!flag){
setParentChecked(parentNode,checked);
}
}
else
{
if
(flag){
setParentChecked(parentNode,checked);
}
}
}
}
|