onCollapse establece el padre como nodo seleccionado, si ya está seleccionado hijo / nieto (bootstrap treeView)

Tengo trabajando la vista de árbol bootstrap. Quiero añadir una característica en esto.

https://jsfiddle.net/evk9yfum/

https://github.com/jonmiles/bootstrap-treeview (complemento utilizado)

Por ejemplo: onNodeCollapsed: si el nodo / grandChild del nodo colapsado ya está seleccionado. entonces el nodo actual encolado debe mostrarse como nodo seleccionado.

Luego en expandir de este mismo nodo. debe mostrar su / último seleccionado o nodo secundario / grandChild.

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

introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

Utilice esta var slectedNodeId, hasSelect=false, nodeIdList=[] tres variables globales y luego haga como el código a continuación. Espero que esto te ayudará.

 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 } ]); } 

Fiddle actualizado aquí : https://jsfiddle.net/evk9yfum/24/

    Intereting Posts