2015-09-03 18 views
8

Używam JSTree w mojej aplikacji z następującego kodu.Wyłącz wielokrotny wybór w JSTree nie działa

this.CreateTreeView = function() { 
    $('#jstree_demo_div').jstree({ 
     'core': { 
      'multiple': false, 
      'data': [ 
       { "id": "ajson1", "parent": "#", "text": "Simple root node" }, 
       { "id": "ajson2", "parent": "#", "text": "Root node 2" }, 
       { "id": "ajson3", "parent": "ajson2", "text": "Child 1" }, 
       { "id": "ajson4", "parent": "ajson2", "text": "Child 2" }, 
      ] 
     } 
    }); 
} 

Jak pokazano w moim kodzie próbuję wyłączyć wiele zaznaczeń.

Teraz, gdy używam następującego kodu, aby wybrać węzeł.

$("#jstree_demo_div").jstree().select_node("ajson3"); 
$("#jstree_demo_div").jstree().select_node("ajson4"); 

Nadal wybiera oba węzły. Tak więc staje się jak wielokrotny wybór z Javascript.

Zamieszczam to pytanie tylko po to, aby potwierdzić, że działa poprawnie JSTree?

Wiem, że można odznaczyć wszystkie węzły przed wyborem dowolnego węzła przy użyciu funkcji deselect_all.

Ale według mnie, jeśli selekcja wielokrotna jest ustawiona na false, to wybranie węzła z javascript również powinno wybrać tylko jeden węzeł.

Proszę mnie poprawić, jeśli się mylę.

Odpowiedz

9

select_node wybiera węzeł, niezależnie od ustawienia multiple.

Ustawienie ogranicza tylko interakcje użytkownika, jest to metoda niższego poziomu i nie podlega ograniczeniom, więc użytkownik (programista) może modyfikować programowo programowo, bez żadnych ograniczeń.

Jeśli chcesz użyć tej samej funkcji, która jest wyzwalana przez interakcję użytkownika (i dlatego jest ograniczona przez multiple), użyj activate_node.

+1

Witaj vakata, dzięki za wsparcie. Twoja biblioteka JSTree jest naprawdę dobra. –

1

prostu użyć tej konfiguracji

this.CreateTreeView = function() { 

    **"plugins" : [ 
       "checkbox", 
      ],** 

    $('#jstree_demo_div').jstree({ 
     'core': { 
      **'multiple': false,** 
      'data': [ 
       { "id": "ajson1", "parent": "#", "text": "Simple root node" }, 
       { "id": "ajson2", "parent": "#", "text": "Root node 2" }, 
       { "id": "ajson3", "parent": "ajson2", "text": "Child 1" }, 
       { "id": "ajson4", "parent": "ajson2", "text": "Child 2" }, 
      ] 
     }, 

     **'checkbox' : {    
      'deselect_all': true, 
      'three_state' : false, 
     }** 

    }); } 
0
'checkbox' : {    
'deselect_all': true, 
'three_state' : false, 
} 

działa dobrze!

Powiązane problemy