2015-09-03 9 views
8

Ich verwende JSTree in meiner Anwendung mit folgendem Code.Disable Mehrfachauswahl in JSTree funktioniert nicht

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" }, 
      ] 
     } 
    }); 
} 

Wie in meinem Code gezeigt, versuche ich, mehrere Auswahl zu deaktivieren.

Jetzt, wenn ich den folgenden Code verwenden, um Knoten auszuwählen.

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

Immer noch wählen Sie beide Knoten. So wird es wie eine Mehrfachauswahl aus Javascript.

Ich stelle diese Frage nur, um zu bestätigen, dass es korrekt funktioniert JSTree?

Ich weiß, dass ich alle Knoten abwählen kann, bevor Sie einen Knoten mit deselect_all Funktion auswählen.

Aber nach mir, wenn mehrere Auswahl auf false gesetzt ist, sollte die Auswahl von Knoten aus Javascript auch nur einen Knoten auswählen.

Bitte korrigieren Sie mich, wenn ich falsch liege.

Antwort

9

select_node wählt einen Knoten unabhängig von der multiple Einstellung.

Die Einstellung beschränkt nur die Benutzerinteraktion, select_node ist eine niedrigere Methode und wird nicht begrenzt, so dass Sie (der Entwickler) die Auswahl programmgesteuert ohne Einschränkung ändern können.

Wenn Sie die gleiche Funktion verwenden möchten, die durch Benutzerinteraktion ausgelöst wird (und daher durch multiple begrenzt ist), verwenden Sie activate_node.

+1

Hallo Vakata, Danke für die Unterstützung. Deine Bibliothek JSTree ist wirklich gut. –

1

nur verwenden diese Konfiguration

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, 
} 

funktioniert gut!