今天在写demo的时候,突然发觉一个问题,问题描述如下:
在手动一个一个选中子节点的情况下,状态为全选,根节点的复选框是选中的,但是出现一个问题,循环遍历的时候,只
能找到选中的子节点,而选中的根节点复选框状态还是false,我仔细看了一下源码,做了如下修改:
在dwz.tree.js文件中:
_checkParent: function () {
if ($(this).parent().hasClass("tree")) return;
var parent = $(this).parent().parent();
var stree = $(">ul", parent);
var ckbox = stree.find(">li>a").size() + stree.find("div.ckbox").size();
var ckboxed = stree.find("div.checked").size();
var aClass = (ckboxed == ckbox ? "checked" : (ckboxed != 0 ? "indeterminate" : "unchecked"));
var rClass = (ckboxed == ckbox ? "indeterminate" : (ckboxed != 0 ? "checked" : "indeterminate"));
$(">div>.ckbox", parent).removeClass("unchecked").removeClass("checked").removeClass(rClass).addClass(aClass);
//新增语句,全选子节点状态也选中父节点
if (aClass == 'checked') {
$(">div>.ckbox", parent).find("input").attr('checked', true);
}
//华丽的分割线
parent._checkParent();
}
加上红色的代码就可以了...