当前位置: 移动技术网 > IT编程>开发语言>JavaScript > bootstrap-Treeview实现级联勾选

bootstrap-Treeview实现级联勾选

2017年12月08日  | 移动技术网IT编程  | 我要评论
本文实例为大家分享了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 
 }); 

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网