2014-04-14 7 views
11

Ich versuche, mithilfe von jsTree einen sehr einfachen Baum zu implementieren. Ich habe die Dokumentation dicht und überwältigend gefunden.Erweitern Sie den Knoten jsTree, wenn Sie auf das übergeordnete Objekt klicken.

Gerade jetzt, ich zeigen/einen Knoten Einsturz durch den Pfeil klicken Sie hier:

enter image description here

Ich will/Einsturz zu erweitern, um die Lage sein, durch die Knotennamen klicken zu:

enter image description here

Der Code, den ich verwende, ist einfach; Ich habe nicht das Javascript für jsTree geändert:

<ul id="tree"> 
    <li> 
     SubFolder1 
     <ul id="tree"> 
     <li data-jstree='{"icon":"/Images/blue-folder.png"}'>Pub 1</li> 
     </ul> 
    </li> 
</ul> 
+0

möglich Duplikat [Öffnen Zweig, wenn sie auf einem Knoten klicken?] (Http://stackoverflow.com/questions/4486032/open-branch-when-clicking-on- a-node) – kostmo

Antwort

6

Nur ein Ereignis-Listener in der HTML-Datei hinzufügen, und rufen Sie die toggle_node Funktion. Dieser Code unten hört auf einen einzelnen Klick.

$(document).ready(function(){ 
    $('#jstree_div').on("select_node.jstree", function (e, data) { $('#jstree_div').toggle_node(data.node); }); 
} 

Wenn Sie einen Doppel hören möchten, klicken Sie ein anderes Ereignis-Listener müssen, da jsTree nicht Doppelklick auf Ereignisse noch nicht unterstützt.

$('#jstree_div').on("dblclick",function (e) { 
    var li = $(e.target).closest("li"); 
    var node = $('#jstree_div').get_node(li[0].id); 

    $('#jstree_div').toggle_node(node) 
}); 

Hoffe, dass hilft.

+1

Es unterstützt jetzt Doppelklick [link] (https://www.jstree.com/api/#/?q=$.jstree.defaults&f=$.jstree.defaults.core.dblclick_toggle) – chech

11
$('#tree').on('select_node.jstree', function (e, data) { 
    data.instance.toggle_node(data.node); 
}); 

Das funktionierte für mich. Oerls Lösung nicht.

+0

für ich auch, danke!! –

-1

Diese Standard-Funktionalität, wenn Sie die Instanz von jsTree erstellen:

$('#jstree').jstree({ 
    "plugins" : [ "wholerow" ] 
}); 

jsTree API

wo Dies schaltet den Zweig immer es auf der ganzen Zeile geklickt wird.

+0

Funktioniert nicht. Es kann nur die komplette Zeile ausgewählt werden. Die Ordner unterhalb des ausgewählten Ordners werden nicht erweitert. –

1
$('#jstree').on("select_node.jstree", function (e, data) { 
    $('#jstree').jstree("toggle_node", data.node); 
}); 

auch wird diese Arbeit

Verwandte Themen