2012-09-07 15 views
5

Wydaje się, że powinno to być proste, ale metoda jstree "data.rslt.obj.text()" lubi zwracać tekst bieżącego węzła, a także wszystkie jego elementy podrzędne. Zorientowałem się, jak uzyskać bieżącą nazwę węzła, zmieniając nazwę węzła (nowa_nazwa), ale jak mogę uzyskać tekst TYLKO bieżącego węzła, gdy po prostu go wybiorę? Doceniam również wszelkie informacje na temat tego, jak znaleźć wszystkie te metody i właściwości w jstree za pomocą chrome lub firebug. Gdzie powinienem szukać na liście elementów, które pojawiają się po wybraniu "data.rslt", na przykład. Dzięki!Jak uzyskać tekst aktualnie wybranego węzła w jstree?

$("#RequirementsTree") 
    .bind("select_node.jstree", function(event, data) { 
      if(is_requirement_node(data)) 
      { 
       var ReqCheck = data.rslt.obj.attr("name"); 

       @* This is a REQUIREMENT *@ 
       if(ReqCheck == "requirement") 
       { 
        $("#RMSDoc_RequirementFlag").val("EDIT"); 
        $("#RMSDoc_RBSRequirement_RequirementsId").val(data.rslt.obj.attr("id").substring(4)); 
        $("#RMSDoc.RBSRequirement.RequirementsId").val(data.rslt.obj.attr("id").substring(4)); 
        $("#RMSDoc_RBSRequirement_RequirementsText").val($.trim(data.rslt.obj.text())); 
        $("#RMSDoc_TreeBranch_Text").val(""); 
        $("#HierarchyText").hide(); 
        $("#RMSDoc_TreeBranch_Text").hide(); 
        $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSEditReqButton.ConfigurableLabelDesc"); 

       } 
       else { 
        alert("Requirement node select error"); 
       } 
      } 
      @* This is a TREE BRANCH *@ 
      else 
      { 
       debugger; 
       $("#RMSDoc_RequirementFlag").val("ADD"); 
       $("#HierarchyText").show(); 
       $("#RMSDoc_TreeBranch_Text").show(); 
       $("#RMSDoc_TreeBranch_Text").val($.trim(data.rslt.obj.text())); 
       $("#RMSDoc_TreeBranch_id").val(data.rslt.obj.attr("id").substring(4)); 
       $("#RMSDoc_RBSRequirement_RequirementsText").val(""); 
       $("#ExistingTreeSubmit").val("@Model.RMSDoc.RMSCreateReqButton.ConfigurableLabelDesc"); 
      } 
    }) 
    .bind("create.jstree", function(e, data) { 

Odpowiedz

9

Jeśli używasz jstree z wyboru w można sprawdzić za length z selektorów wyboru.

if ($('.jstree-checked').length == 1) { 
    alert('Checked Item -: ' + $('.jstree-checked').text()); 
} 

Jeżeli nie jesteś do wyboru następnie użyć tego przełącznika.

if ($('.jstree-clicked').length == 1) { 
    alert('Selected Item -: ' + $('.jstree-clicked').text()); 
} 

Aby uzyskać listę wszystkich elementów i metod jstree, trzeba umieścić punkt debugowania zarówno w chromie lub Firebug w jstree.js plik .. Na przykład można znaleźć metodę .bind w .js i umieść punkt debugowania na tej konkretnej linii. Kiedy ten punkt trafi, możesz najechać kursorem na argumenty, aby rzucić okiem na stosowane w nim metody.

+0

Dzięki! To się udało. $ (". jstree-kliknięty"). text() jest znacznie lepszy niż użycie data.rslt.obj.text(), ponieważ pobiera tylko tekst węzła, który klikasz, zamiast zawierać wszystkie dzieci. – TheDude

Powiązane problemy