2016-05-27 13 views
5

Avere una struttura ad albero simile alla seguentenascondere le sezioni Cliccando Dynatree Valore

Section 1 
item1 
item2 
Section 2 
item5 

posso fare clic su qualsiasi elemento e nascondere tutti gli altri oggetti con la funzione dynatree OnActivate e questo codice

onActivate: function(node) { 
      var resultId = "#" + node.data.title; 
      resultId = resultId.replace(/\s/g, ''); 
      $('#contents>div').not(resultId).hide(); 
      $(resultId).show(); 
     }, 

mio html è questo

<div class="container-fluid text-left"> 
    <div class="row content"> 
     <div class="col-sm-2 sidenav" id="tree"> </div> 
     <div class="col-sm-8" id="contents"> 

      <div id="item1"> 
       <table id="item1grid"></table> 
      </div> 
      <div id="item2"> 
       <table id="item2grid"></table> 
      </div> 
      <div id="item5"> 
       <table id="item5grid"></table> 
      </div> 
     </div> 
     <div id="info"> </div> 
    </div> 
</div> 
</div> 

Come posso estendere questo html e la funzione per cui se faccio clic su "Sezione 1" in l'albero mostra tutti gli elementi di quella sezione, ad esempio cliccando "Sezione 1" mostra solo item1 e item2

risposta

3

Forse è possibile ottenere questo utilizzando alcune proprietà dell'oggetto nodo in entrata del callback 'onActivate'. È necessario verificare che l'oggetto attivato sia una cartella e, in tal caso, visualizzare tutti i chidlren di questo elemento. Prova per aggiungere questo frammento all'interno del callback OnActivate:

if (node.data.isFolder) { 
    for (var i = 0; i < node.childList.length; i++) { 
     $('#' + node.childList[i].data.key).show(); 
    } 
} 

Sentitevi liberi di scaricare l'intero oggetto con console.log e controllare i campi che siete in grado di utilizzare.

Potresti fornire un jsfiddle per verificare cosa stai facendo finora?

Problemi correlati