easyui tree 级联从三种状态变为两种状态

   在网上找的方法都是使用方法$('#tree').tree('select', node.target);都没绕开oncheck方法,后来发现easyui tree提供了一个update方法可以成功绕开onCheck方法,从而成功将级联改为两种状态。代码如下:

$('#tree').tree({
url: '/tree'
  ,lines:false
,checkbox:true
,cascadeCheck: false
,onCheck: function (node, checked) {
blChild(node,checked);
   blParent(node,checked);
  }
});

function blChild(node, checked){
var children = node.children;
if(children.length>0){
for(var i=0;i<children.length;i++){
var childNode = children[i];
//childNode = $('#tree').tree('find', childNode.id);//当树没加载好,修改报iconCls错时加上这行即可
if(checked){
$('#tree').tree('update', {
target:childNode.target,
checked:true
});
}else{
$('#tree').tree('update', {
target:childNode.target,
checked:false
});
}
blChild(childNode,checked);
}
}
}

function blParent(node, checked){
var parentNode = $("#tree").tree("getParent", node.target);
if(parentNode){
if(checked){
$('#tree').tree('update', {
target:parentNode.target,
checked:true
});
blParent(parentNode,checked);
}else{
var children = parentNode.children;
var flag= true;
for(var i=0;i<children.length;i++){
if(children[i].checked!=checked){
flag = false;
}
}
if(flag){
$('#tree').tree('update', {
target:parentNode.target,
checked:false
});
blParent(parentNode,checked);
}
}
}
}

猜你喜欢

转载自www.cnblogs.com/lf90/p/9347281.html