第一种写法:
<Listeners>
<CheckChange Fn="checkchange" />
</Listeners>
var checkchange = function (node, checked) {
checkParentNode(node.parentNode, checked);
checkChildNode(node, checked);
};
var checkChildNode = function (node, checked) {
if (node == undefined) {
return;
}
node.data.checked = checked;
node.triggerUIUpdate(checked);
node.eachChild(function (child) {
checkChildNode(child, checked);
});
};
var checkParentNode = function (node, checked) {
if (node == undefined) {
return;
}
allUnchecked = 1;
node.eachChild(function (child) {
if (child.data.checked) {
allUnchecked = 0;
}
});
if (allUnchecked == 1 || checked == true) {
node.data.checked = checked;
node.triggerUIUpdate(checked);
checkParentNode(node.parentNode, checked);
}
};第二种写法:
<Listeners>
<CheckChange Fn="checkchange" />
</Listeners>
var checkchange = function (node, checked) {
if (checked) {
checkParentNode(node.parentNode, checked);
}
checkChildNode(node, checked);
};
var checkChildNode = function (node, checked) {
if (node == undefined) {
return;
}
node.data.checked = checked;
node.triggerUIUpdate(checked);
node.eachChild(function (child) {
checkChildNode(child, checked);
});
};
var checkParentNode = function (node, checked) {
if (node == undefined) {
return;
}
node.data.checked = checked;
node.triggerUIUpdate(checked);
checkParentNode(node.parentNode);
};
本文介绍了两种改进的节点检查函数实现方式,包括父节点和子节点的递归检查过程,详细阐述了如何通过事件监听器和触发更新来管理节点状态。

762

被折叠的 条评论
为什么被折叠?



