项目有个地方用了ztree,要实现点击叶节点后父节点的颜色改变,于是就在js里加了一句:
if($("a").checked=true){ //a==叶节点
$(".level0.cur").css({"background":"rgb(208, 197, 59)"});
}else{
$(".level0.cur").css({"background":"rgb(133, 197, 59)"});
}
然后是能变色了,但是变了之后如果点击其它父节点,当前父节点变不回来!
解决方法:使用removeAttr()移除加到style里的样式
function beforeClick(treeId, node) {
if (node.isParent) {
$(".level0.cur").removeAttr("style","");
if (node.level === 0) {//判断为最大的节点,它上面没有父节点了
..........
}else {
if($("a").checked=true){
$(".level0.cur").css({"background":"rgb(208, 197, 59)"});
}
}
}
}
不能用removeProp(),它主要用于检索元素本身固有属性值 ,比如checked,它会返回true or false
removeAttr()用于检索我们给元素添加的HTML属性,也就是自定义属性。