Javascript 显示默认选中的复选框
它是一个带有“+”和“-”符号的树结构,用于指示该项是否有子项。 它应该像这样工作:Javascript 显示默认选中的复选框,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,它是一个带有“+”和“-”符号的树结构,用于指示该项是否有子项。 它应该像这样工作: 首先,所有带有带“+”符号的子项 如果选中项目或复选框,则符号将转换为“-” 如果项目未选中或复选框未选中,则符号将转换为“+” 工作原理: 首先,所有项目都未选中,“+”符号存在 单击任何 项,则首先取消选中该项并保留“+”符号 点击 对于所选项目,将选中该项目并将其更改为“-”符号 $(文档).ready(函数(){ var toggle=函数(){ if($(this.parent().fin
- 首先,所有带有带“+”符号的子项
- 如果选中项目或复选框,则符号将转换为“-”
- 如果项目未选中或复选框未选中,则符号将转换为“+”
- 首先,所有项目都未选中,“+”符号存在
- 单击任何 项,则首先取消选中该项并保留“+”符号
- 点击 对于所选项目,将选中该项目并将其更改为“-”符号
$(文档).ready(函数(){
var toggle=函数(){
if($(this.parent().find(“input”).is(':checked')){
控制台日志(“已检查”);
$(this).parent('li:has(>ul')).find(“span:first”).removeClass(“glyphicon glyphicon加号”).addClass(“glyphicon减号”);
}否则{
控制台日志(“未选中”);
$(this).parent('li:has(>ul')).find(“span:first”).removeClass(“glyphicon glyphicon减号”).addClass(“glyphicon glyphicon加号”);
}
$(this.parent().children().toggle();
$(this.toggle();
};
$(“.Collapsable”)。单击(切换);
$(“.Collapsable”)。每个(切换);
$('.tree li:not(:has(>ul))).find(“span:first”).addClass(“glyphicon glyphicon书签”);
});代码>
ul.tree,
树{
列表样式:无;
保证金:0;
填充:0;
}
树{
左边距:0px;
}
李树{
保证金:0;
左边距:20px;
填充:0 7px;
线高:20px;
颜色:#369;
字体大小:粗体;
左边框:1px实心rgb(100100100);
}
李树:最后一个孩子{
左边界:无;
}
李树:以前{
位置:相对位置;
顶部:-0.3em;
高度:1米;
宽度:12px;
颜色:白色;
边框底部:5px实心rgb(100100100);
内容:“;
显示:内联块;
左:-7px;
}
李树:最后一个孩子:之前{
左边框:1px实心rgb(100100100);
}
输入[类型=复选框]{
位置:绝对位置;
页边距顶部:4px\9;
左边距:-20px;
可见性:隐藏;
}
输入[类型=复选框]+标签{
显示:首字母;
}
输入[类型=复选框]:选中+标签{
颜色:#f00;
}
-
一个
-
一对一
-
1-2
-
1-1-1-1
-
1-1-1-2
-
两个
-
二比一
-
2-1-1
-
2-1-2
-
二比二
您能检查一下吗
我通过检查ul
项的可见状态来更新代码,而不是检查复选框是否被选中
if (!$(this).closest("li").find("ul:first").is(":visible") && $(this).closest("li").is(":visible")) {
所以,这就像是双重检查。检查最近的“li”的第一个“ul”和最近的“li”本身是否可见,而不是选中复选框。非常感谢。是的。。。你是对的。。否则,它会使第二个孩子成为相反的模式