2014-12-17 11 views
10

Używam jsTree z wtyczką checkbox. Mam kaskadę ustawioną "w dół". Działa to świetnie, z wyjątkiem tego, że gdy chcę załadować dane z mieszaniną sprawdzonych i niezaznaczonych węzłów, kaskada zastępuje ustawienie "stanu" dla węzłów. Na przykład.Jak mogę wyłączyć kaskadę przy pierwszym ładowaniu jsTree?

var data = [ 
    {"id":"p90","parent":"#","text":"Page1", "state": { "selected": true} }, 
    {"id":"p100","parent":"p90","text":"Page2", "state": { "selected": true} }, 
    {"id":"p101","parent":"p100","text":"Page3", "state": { "selected": false} }, 
    {"id":"p102","parent":"p101","text":"Page4", "state": { "selected": true} }, 
    {"id":"p103","parent":"p101","text":"Page5", "state": { "selected": false} } 
]; 

$(function() { 
    $("#PageTree") 
     .jstree({ 
      core: { data: data }, 
      plugins: ["checkbox"], 
      checkbox: { cascade: "down", three_state: false }, 
      expand_selected_onload: true 
     }); 
}); 

Powoduje to:

all checked

Ale powinno to wyglądać tak:

some checked

Próbowałem ustawienie "kaskadę" ustawienie po drzewo jest załadowany , ale to nie zadziałało. Wygląda na to, że jedyną opcją będzie napisanie własnego kodu kaskadowego, ale szukam opcji slicker.

+0

Dla każdego, kto przyjeżdża tutaj z innymi kwestiami wstrzymywania zdarzeń na obciążenia wstępnego drzewa, proszę sprawdź https://www.jstree.com/api/#/?q=refresh&f=refresh(), aby dowiedzieć się, jak używać zdarzenia odświeżania, jeśli używasz go ręcznie. Nie przyglądałem się wystarczająco dokładnie parametrom takim jak 'forget_state' i spowodowało to wiele problemów ... –

Odpowiedz

11

To, co skończyło się robi, co jest rozwiązanie zalecane przez dewelopera jsTree (https://github.com/vakata/jstree/issues/774):

$("#PageTree") 
    .on('select_node.jstree', function (e, data) { 
     if (data.event) { 
      data.instance.select_node(data.node.children_d); 
     } 
    }) 
    .on('deselect_node.jstree', function (e, data) { 
     if (data.event) { 
      data.instance.deselect_node(data.node.children_d); 
     } 
    }) 
    .jstree({ 
     core: { data: pages }, 
     plugins: ["checkbox"], 
     checkbox: { cascade: "", three_state: false }, 
     expand_selected_onload: true 
    }); 
Powiązane problemy