jstree checkbox选择所有子节点却不自动选择父节点


 转 http://blog.csdn.net/liu739/article/details/38281145

jstree checkbox选择所有子节点却不自动选择父节点

jstree加个checkbox插件就可以实现多选。且默认 选中父节点就选中其所有子节点,选中所有子节点就自动选中这些子节点的父节点。

我现在的需求是,即使选择了所有子节点也不自动选择父节点,其他不变。。。。。。。。。。

 

在谷歌找了很多国内外国网站,都没找到解决方法,jstree的库没提供这个功能配置选项。。。。

在3.0.0中有一个 three-state属性,默认为true,true的时候上面那两种功能就是有的,改为false,那两种功能就都没了。很无语…………

 

所以我就去看jstree的源代码,最终通过修改一小部分实现了我的功能。

具体做法就是把3783行开始的这段代码注释掉就好,不会影响其他功能(暂时没发现,发现问题的大家一起交流)

 

[html]  view plain copy
 
  1. <pre name="code" class="java">    /*   选择所有子节点后仍不选择父节点  
  2.                             while(par && par.id !== '#') {  
  3.                                 c = 0;  
  4.                                 for(i = 0, j = par.children.length; i j; i++) {  
  5.                                     c += m[par.children[i]].state.selected;  
  6.                                 }  
  7.                                 if(c === j) {  
  8.                                     par.state.selected = true;  
  9.                                     this._data.core.selected.push(par.id);  
  10.                                     tmp = this.get_node(par, true);  
  11.                                     if(tmp && tmp.length) {  
  12.                                         tmp.children('.jstree-anchor').addClass('jstree-clicked');  
  13.                                     }  
  14.                                 }  
  15.                                 else {  
  16.                                     break;  
  17.                                 }  
  18.                                 par = this.get_node(par.parent);  
  19.                             }  
  20.                             */  


 
 

结果展示:

   选择父节点时 还会自动全选子节点

因为我需要这个功能,好不容易解决了,分享下……有同样需求的朋友可以试下,也可以交流下其他方法……


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM