Samstag, Februar 22, 2020

jQuery Dynatree, wählen Sie einen untergeordneten Knoten, die durch Titel?

Bin ich mit etwas code, um programmgesteuert wählen Sie ein root-Knoten (die einzige in es) einer dynatree, d.h.

        $("#divDynaTree").dynatree("getRoot").visit(function (node) {
        node.select(true);
    });

Habe ich eine zweite dynatree mit mehreren „Eltern“ und „Kinder“ – Knoten, und wählen möchten eines der „Kinder“ programmgesteuert verwenden, wenn ich ein separates Ereignis (button-Klick) in die app. Ich würde gerne den Titel des child-Knoten, aber ich habe eine harte Zeit finden die richtige syntax zu tun. Ich habe entdecken Sie die anderen dynatree threads auf dieser Website und goodle und noch nicht gefunden haben, genau das, was ich Suche (oder vielleicht war es eng, aber meine Unerfahrenheit ließ mich scheitern zu sehen). Ich nehme an, der code wird ähnlich wie oben, mit „besuchen“.. aber ich bin mir nicht sicher, wo zu gehen, nachdem zu dieser Zeit. Jede Hilfe würde geschätzt werden.

InformationsquelleAutor M.Bush | 2013-03-07

2 Kommentare

  1. 2

    Versuchen Sie diese Option wählen, werden alle untergeordneten Knoten:

    $(function(){
        var inEventHandler = false;
        $("#tree").dynatree({
            checkbox: true,
            selectMode: 2,
            [...]
            onSelect: function(select, dtnode) {
                //Ignore, if this is a recursive call
                if(inEventHandler) 
                    return;
                //Select all children of currently selected node
                try {
                    inEventHandler = true;
                    dtnode.visit(function(childNode){
                        childNode.select(true);
                    });
                } finally {
                    inEventHandler = false;
                }
            }

    Suche mit oder-Knoten von name:

    var match = null;
    tree.visit(function(node){
        if(node.data.title === "foo"){
            match = node;
            return false; //stop traversal (if we are only interested in first match)
        }
    });
    alert("Found " + match);
    • Ich habe gesehen, wie diese code-block vor, aber das ist nicht genau das, was ich versuche zu tun. Ich will nur einen untergeordneten Knoten ausgewählt, durch die Titel, und nicht erst einen button-Klick passiert, die derzeit nicht verbunden ist mit dem Baum selbst. Danke für Eure Antworten, obwohl
    • versuchen Sie, die Verbindung der beiden code.Sie erhalten Antwort.
    • Danke Amrendra, ich geben diesem einen Versuch!
  2. 0

    Vielleicht suchen Sie nach

    $("#tree").dynatree("getTree").activateKey("KeyName")

    Die Aktivierung der Knoten von einem externen Ereignis mit seiner Schlüssel. Dies ist aus dynaTree Dokumentation zweite Beispiel unter „Programmierung dynatree“

    Ich nicht suchen, einen Weg zu finden, Knoten, indem Sie seinen Namen statt der Schlüssel, vielleicht gibt es einen besseren Weg, es zu tun, aber ich denke, Sie können besuchen, um den Schlüssel zu finden und dann aktivieren Sie es wie folgt.

    function ActivateNodeByTitle(nodeTitle){
        var $tree = $("#tree").dynatree("getTree")
        $tree.visit(function(node){
            if(node.data.title === nodeTitle){
                $tree.activateKey(node.data.key)
                return false; //stop traverse
            }
        });
        return false
    }

Kostenlose Online-Tests