2011-09-21 14 views
7

Pracuję z jstree z ajaxem i widzę, że wszystkie moje węzły mają strzałkę, aby ją rozwinąć, nawet te, które nie mają dzieci. Na stronie demonstracyjnej jstree http://www.jstree.com/demo tak nie jest. Nie widzę na kodzie demo czegoś innego niż moje, więc czy pochodzi on z serwera? Czy mam parametr do wprowadzenia w odpowiedzi na metodę "getChildren" do powiedzenia na jstree "ten, nie masz dzieci, nie włączaj rozszerzania"?Problem z jstree może rozwinąć węzły bez dzieci

Ktoś wie, skąd pochodzi? I co mogę zrobić, żeby to naprawić?

Ponieważ wydaje się, że jest to problem, gdy użyłem funkcji kopiowania/wklejania wtyczki contextmenu. Kiedy wkleję do węzła (nowego rodzica) bez dzieci i jeszcze nie otwartego (więc dzieci nie zostały załadowane), nic się nie dzieje z wyjątkiem żądania uzyskania dzieci (jak gdybym kliknął, aby otworzyć węzeł), który nic nie zwraca oczywiście . I nie wykonuje funkcji move_node.

EDIT: Mam ten sam problem z "dodać" z ContextMenu

ktoś może mi pomóc?

Dzięki

+0

można utworzyć próbkę na jsfiddle? – Radek

Odpowiedz

4

dodałem klasę do właściwości attrjstree-leaf dla moich węzłów, które nie mają dzieci.

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

Ustawi to klasę CSS, w której nie ma funkcji rozwinięcia.

2

Miałem ten sam problem z metodą "create" i węzłami bez dzieci. Rozwiązano go, określając stan takich węzłów jako "otwarty" zamiast domyślnego "zamknięty".

Nadzieja, że ​​to pomaga.

+2

Musiałem ustawić to "liść" w Quandary. "Zamknięte" nie działa. – fiat

+1

Musiałem również ustawić "Leaf". –

10

Z dokumentacji jsTree:

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

jedną z trzech klas będą stosowane w zależności od struktury węzła:

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

Jonathan Stowell ma rację, ale ustawienie attr.class do „jstree- liść "nie zadziała (przynajmniej nie w najnowszej wersji).

Ale "otwarte" i "zamknięte" przypomniały mi o node.state, więc próbowałem i okazało się, że po ustawieniu węzła. stan do "liści" w klasie szeregowania JSON, będzie nierozszerzalny.

+2

ustawienie "stan": "liść" pracował dla mnie. dzięki! – realgt

+0

bardzo ładna sztuczka ;-) – spiderman77

+0

fantastyczne! wspaniały – Neo

1

jeśli wysyłania danych json, dać "jstree-liść" jako li_attr w klasie

li_attr: {class = "jstree-leaf" }