2010-09-14 7 views
2

Je travaille avec jstree et j'aimerais savoir comment cacher/montrer des nœuds si possible. J'ai donné aux éléments de la liste un identifiant "chat" pour les sélectionner avec jquery mais cela ne fonctionne pas.jsTree show/hide nodes

Voici le code.

html:

<div class="resultsContent"> 

    <div class="demo" id="demo_1"> 

    <ul> 

    {% for ipc in ipcs %} 

     {% ifequal ipc.back_list 1 %} 

      </ul></li> 

     {% endifequal %}  

     {% ifequal ipc.kind "c" %} 

     <li id="{{ ipc.symbol }} cat" rel="node-type"> 
       {% else %} 
        <li id="{{ ipc.symbol }} cat" rel="node-type"> 
      {% endifequal %} 
    {% endfor %} 
    </ul> 

</div> 

</div> 
scénario

:

jQuery('#demo_1') 

    .jstree({ 

     plugins : [ "themes", "html_data", "checkbox" ], 

     themes : { theme: "default", dots : false, icons : false },   

     core : { "initially_open" : [ "{{ top_symbol }}" ] }, 

    }) 

$("#cat").slice(5, 10).hide(); //Hide some nodes 

Répondre

3

Il semble à votre code que vous générez des éléments li avec un ID composé d'une valeur Symbole IPC , plus un espace noir, plus le mot "chat".

<li id="{{ ipc.symbol }} cat" rel="node-type"> 

Mais, votre sélecteur tente d'obtenir un élément dont l'ID est exactement « chat »

$("#cat").slice(5, 10).hide(); //Hide some nodes 

Peut-être que vous pouvez utiliser un sélecteur jQuery différent. Par l'exemple, Attribute Contains Selector:

$("li[id*='cat']").slice(5, 10).hide(); //Hide nodes with the string 'cat' 

Ou le Attribute Contains Word Selector, plus approprié dans ce cas (parce que vous êtes à la recherche d'un mot entier):

$("li[id~='cat']").slice(5, 10).hide(); //Hide nodes containing the word 'cat' 
+0

Merci Tomás, j'ai essayé, mais il semble mettre la "chat" dans l'ID est en conflit avec jstree. Je vais devoir mettre les éléments li dans un autre sens. – mxm

+0

Dans ce cas, essayez avec le sélecteur d'enfants (http://api.jquery.com/child-selector/): sélectionnez tous les éléments LI sous "demo_1" DIV: $ ('# demo_1> li') –

+0

Cela a fonctionné !, gracias Tomás !. – mxm