bootstrap-Treeview实现级联勾选
程序员文章站
2022-03-20 21:44:02
本文实例为大家分享了bootstrap treeview实现级联勾选的具体代码,供大家参考,具体内容如下
核心方法
var nodecheckedsilent...
本文实例为大家分享了bootstrap treeview实现级联勾选的具体代码,供大家参考,具体内容如下
核心方法
var nodecheckedsilent = false; function nodechecked (event, node){ if(nodecheckedsilent){ return; } nodecheckedsilent = true; checkallparent(node); checkallson(node); nodecheckedsilent = false; } var nodeuncheckedsilent = false; function nodeunchecked (event, node){ if(nodeuncheckedsilent) return; nodeuncheckedsilent = true; uncheckallparent(node); uncheckallson(node); nodeuncheckedsilent = false; } //选中全部父节点 function checkallparent(node){ $('#searchtree').treeview('checknode',node.nodeid,{silent:true}); var parentnode = $('#searchtree').treeview('getparent',node.nodeid); if(!("nodeid" in parentnode)){ return; }else{ checkallparent(parentnode); } } //取消全部父节点 function uncheckallparent(node){ $('#searchtree').treeview('unchecknode',node.nodeid,{silent:true}); var siblings = $('#searchtree').treeview('getsiblings', node.nodeid); var parentnode = $('#searchtree').treeview('getparent',node.nodeid); if(!("nodeid" in parentnode)) { return; } var isallunchecked = true; //是否全部没选中 for(var i in siblings){ if(siblings[i].state.checked){ isallunchecked=false; break; } } if(isallunchecked){ uncheckallparent(parentnode); } } //级联选中所有子节点 function checkallson(node){ $('#searchtree').treeview('checknode',node.nodeid,{silent:true}); if(node.nodes!=null&&node.nodes.length>0){ for(var i in node.nodes){ checkallson(node.nodes[i]); } } } //级联取消所有子节点 function uncheckallson(node){ $('#searchtree').treeview('unchecknode',node.nodeid,{silent:true}); if(node.nodes!=null&&node.nodes.length>0){ for(var i in node.nodes){ uncheckallson(node.nodes[i]); } } }
6-27 : 经部分网友反馈,图中的 if(!("id" in perentnode)) 需要改成 if(!("nodeid" in perentnode))才能正常运行,我想应该是版本问题,上面代码中已经改正了。如果运行不了,请改回 if(!("id" in perentnode))试一下。(谢谢大家提出)
因为treeview中silent属性指定了无效(我也不知道为什么委屈),所以多加了两个变量来控制
$('#searchtree').treeview({ showcheckbox:true, data:treedata, onnodechecked:nodechecked , onnodeunchecked:nodeunchecked });
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。