2011-09-21 25 views
7

Estoy trabajando con jstree con ajax y veo que todos mis nodos tienen la flecha para expandirlo, incluso aquellos que no tienen hijos. En la página de demostración de jstree http://www.jstree.com/demo, este no es el caso. No veo en el código de demostración algo diferente al mío, ¿así que viene del servidor? ¿Tengo un parámetro para poner en respuesta al método "getChildren" para decir en jstree "este, no tengo hijos, no habilito para expandirlo"?Problema con jstree puede expandir nodos sin hijos

¿Alguien sabe de dónde viene? ¿Y qué puedo hacer para arreglar eso?

Porque parece ser un problema cuando utilicé la función copiar/pegar del complemento contextmenu. Cuando pego en un nodo (el nuevo padre) sin hijos y aún no abierto (para que los niños no se hayan cargado), no pasa nada excepto la solicitud para obtener hijos (como si hago clic para abrir el nodo) que obviamente no devuelve nada . Y no ejecuta la función move_node.

EDIT: Tengo el mismo problema con "añadir" desde el menú contextual

Alguien me puede ayudar?

Gracias

+0

Se puede crear una muestra de jsFiddle? – Radek

Respuesta

4

que añaden la clase jstree-leaf a la propiedad attr para mis nodos que no tienen hijos.

attr: { "class" : "jstree-leaf" } 

Esto establece la clase de CSS que necesita para no tener la función expandir.

2

Tuve el mismo problema con el método "create" y los nodos sin elementos secundarios. Lo resolvió especificando el estado de dichos nodos como "abierto" en lugar de "cerrado" por defecto.

Espero que esto ayude.

+2

Tuve que configurar esto para 'hoja' según Quandary. 'Cerrado' no funcionó. – fiat

+1

También tuve que configurarlo en 'Hoja'. –

10

De la documentación jsTree:

http://www.jstree.com/documentation/html_data 

una de las tres clases se aplicará en función de estructura de nodos:

<li class="[ jstree-open | jstree-closed | jstree-leaf ]"> 

Jonathan Stowell es correcto, pero el establecimiento de attr.class a "jstree- hoja "no funcionará (al menos no en la última versión).

Pero "abrir" y "cerrar" me recordaron a node.state, así que lo intenté, y resultó que cuando estableces el nodo. estado para "hoja" en su clase de serialización JSON, no será expandible.

+2

configuración "estado": "hoja" funcionó para mí. ¡Gracias! – realgt

+0

muy buen truco ;-) – spiderman77

+0

¡fantástico! magnífico – Neo

1

si envía los datos JSON, dar "jstree hojas" como la clase de li_attr

li_attr: {class = "jstree-leaf" } 
Cuestiones relacionadas