checkbox的BUG
ztree吧
全部回复
仅看楼主
level 1
allpsk
楼主
今天使用了一下ZTREE,感觉功能很好,但是有一点小瑕疵,希望能得到解决:
1. 某个节点的disable属性设置问题,现在好像没有这个功能。我现在自己手动添加了这个功能,但是我不太会做图片,找不到合适的disable的图片样式。
2. 当某节点的第一个子节点为『nocheck:true』时,该节点的全选择的图片样式不对,显示为半选择。
PS:请问有人知道正式版的发布时间吗?
2011年10月18日 01点10分
1
level 11
zTreeAPI
1、是节点disable还是checkbox disable?目前正计划正式版中具有checkbox 的disable的功能
2、你给的例子显示是正常的,因为下面还有一个 随意勾选子 2 没有被勾选!
3、连我自己都无法给出 正式版发布的确切时间,只能说继续努力。因为本职工作最近也很繁忙,家中的事情也很多。。时间越来越少,同时还在进行英语版本的制作。。哎!请再耐心等一下吧。不好意思了
2011年10月18日 10点10分
2
level 1
allpsk
楼主
谢谢你的回复。
>>>1、是节点disable还是checkbox disable?目前正计划正式版中具有checkbox 的disable的功能
checkbox的disable
>>>2、你给的例子显示是正常的,因为下面还有一个 随意勾选子 2 没有被勾选!
这个图截错了,现在上传新的图片
>>> 3、连我自己都无法给出 正式版发布的确切时间,只能说继续努力。因为本职工作最近也很繁忙,家中的事情也很多。。时间越…
辛苦了
2011年10月19日 00点10分
3
level 1
allpsk
楼主
关于上面的第二点:
你在makeChkFlag方法中,判断父节点的check_Child_State时,使用以下代码:
if (tmp === 1) { chkFlag = 1; break; } else if (tmp === 2 && (i - checkIgnoreCount) > 0 && tmp !== chkFlag) { chkFlag = 1; break; } else if (chkFlag === 2 && tmp > -1 && tmp < 2) { chkFlag = 1; break; } else if (tmp > -1) { chkFlag = tmp; }
这一段好像会导致这个BUG。
我现在的修正方法(因为不是很了解全部的情况,所以尽可能少的影响其他):
if (node[childsKey]) {
var checkIgnoreCount = 0;
for (var i = 0, l = node[childsKey].length; i < l; i++) {
var cNode = node[childsKey][i];
var tmp = -1;
if (setting.check.chkStyle == consts.radio.STYLE) {
if (cNode.nocheck === true) {
tmp = cNode.check_Child_State;
} else if (cNode.nocheck !== true && cNode[checkedKey]) { tmp = 2;
} else {
tmp = cNode.check_Child_State > 0 ? 2:0;
}
if (tmp == 2) {
chkFlag = 2; break;
} else if (tmp == 0){
chkFlag = 0;
}
} else if (setting.check.chkStyle == consts.checkbox.STYLE) {
if (cNode.nocheck === true || cNode.disablechk === true) {
// tmp = cNode.check_Child_State; checkIgnoreCount++;
continue;
} else if ((cNode.nocheck !== true && cNode.disablechk !== true) && cNode[checkedKey] ) {
tmp = (cNode.check_Child_State === -1 || cNode.check_Child_State === 2) ? 2 : 1;
} else {
tmp = (cNode.check_Child_State > 0) ? 1 : 0;
}
if (tmp === 1) {
chkFlag = 1; break;
} else if (tmp === 2 && (i - checkIgnoreCount) > 0 && tmp !== chkFlag) {
chkFlag = 1; break;
} else if (chkFlag === 2 && tmp > -1 && tmp < 2) {
chkFlag = 1; break;
} else if (tmp > -1) {
chkFlag = tmp;
}
}
}
}
2011年10月19日 09点10分
4
level 1
allpsk
楼主
cNode.disablechk === true 这个是我暂时扩展的checkbox非活性,这里可以无视
2011年10月19日 09点10分
5
level 11
zTreeAPI
关于 第2个bug,请参考 ztreeapi.iteye.com/blog/1169368 中的【修改】6
2011年10月20日 00点10分
6
1