OnCollapse définit le parent comme nœud sélectionné, si l'enfant / petit-enfant est déjà sélectionné (bootstrap treeView)

J'ai une vue d'ensemble du bootstrap en cours d'exécution. Je veux ajouter une fonctionnalité à cela.

Https://jsfiddle.net/evk9yfum/

Https://github.com/jonmiles/bootstrap-treeview (plugin utilisé)

Par exemple: onNodeCollapsed: si l'enfant / grandChild du noeud s'est effondré déjà sélectionné. Alors le noeud collabore actuel doit être représenté comme nœud sélectionné.

Ensuite, développez ce même noeud. Il devrait montrer son nœud / dernier sélectionné ou enfant / grandChild.

onNodeCollapsed: function(event, node) { $.each(node.nodes, function() { if (this.state.selected) { $('#treeview-selectable').treeview('selectNode', [node.nodeId, { silent: true }]); return; } }); } 

Entrez la description de l'image ici Entrez la description de l'image ici Entrez la description de l'image ici Entrez la description de l'image ici

Utilisez ce var slectedNodeId, hasSelect=false, nodeIdList=[] trois variables globales, puis faites comme le code ci-dessous. J'espère que ceci vous aidera.

 onNodeExpanded:function(event, node){ $.each(node.nodes, function(){ if((this.nodeId==slectedNodeId || nodeIdList.indexOf(this.nodeId)>-1) && hasSelect) { $('#treeview-selectable').treeview('selectNode', [ this.nodeId, { silent: true } ]); } }); }, onNodeCollapsed:function(event, node){ nodeIdList.push(node.nodeId); $.each(node.nodes, function(){ if(this.state.selected){ $('#treeview-selectable').treeview('selectNode', [nodeIdList[0], { silent: true } ]); hasSelect=true; } }); }, onNodeSelected: function (event, node) { slectedNodeId=node.nodeId; nodeIdList=[]; hasSelect=false; $(this).treeview('unselectNode', [ node.nodeId, { silent: false } ]); }, onNodeUnselected: function (event, node) { $(this).treeview('selectNode', [ node.nodeId, { silent: true } ]); } 

Mise à jour du violon ici : https://jsfiddle.net/evk9yfum/24/