1. 程式人生 > >jstree checkbox選擇所有子節點卻不自動選擇父節點

jstree checkbox選擇所有子節點卻不自動選擇父節點

我用的是  jsTree 3.0.0

jstree加個checkbox外掛就可以實現多選。且預設 選中父節點就選中其所有子節點,選中所有子節點就自動選中這些子節點的父節點。

我現在的需求是,即使選擇了所有子節點也不自動選擇父節點,其他不變。。。。。。。。。。

在谷歌找了很多國內外國網站,都沒找到解決方法,jstree的庫沒提供這個功能配置選項。。。。

在3.0.0中有一個 three-state屬性,預設為true,true的時候上面那兩種功能就是有的,改為false,那兩種功能就都沒了。很無語…………

所以我就去看jstree的原始碼,最終通過修改一小部分實現了我的功能。

具體做法就是把3783行開始的這段程式碼註釋掉就好,不會影響其他功能(暫時沒發現,發現問題的大家一起交流)

<pre name="code" class="java">	/*   選擇所有子節點後仍不選擇父節點
							while(par && par.id !== '#') {
								c = 0;
								for(i = 0, j = par.children.length; i < j; i++) {
									c += m[par.children[i]].state.selected;
								}
								if(c === j) {
									par.state.selected = true;
									this._data.core.selected.push(par.id);
									tmp = this.get_node(par, true);
									if(tmp && tmp.length) {
										tmp.children('.jstree-anchor').addClass('jstree-clicked');
									}
								}
								else {
									break;
								}
								par = this.get_node(par.parent);
							}
							*/



結果展示:

選擇父節點時 還會自動全選子節點

因為我需要這個功能,好不容易解決了,分享下……有同樣需求的朋友可以試下,也可以交流下其他方法……