2012-09-07 12 views
5

Sembra che dovrebbe essere semplice da eseguire, ma il metodo "data.rslt.obj.text()" di jstree è in grado di restituire il testo del nodo corrente e tutti i relativi figli. Ho capito come ottenere il nome del nodo corrente rinominando un nodo (new_name), ma come ottengo il testo di SOLO il nodo corrente quando lo seleziono semplicemente? Inoltre, apprezzerei qualsiasi idea su come avrei trovato tutti questi metodi e proprietà nella jstree usando chrome o firebug. Dove troverei l'elenco degli elementi che appaiono quando seleziono "data.rslt", per esempio. Grazie!Come posso ottenere il testo del nodo attualmente selezionato su 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) { 

risposta

9

Se si utilizza il jstree con le caselle di controllo su di voi può controllare la length dei selettori casella di controllo.

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

Se non ci si trova in caselle di controllo, utilizzare questo selettore.

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

per ottenere l'elenco di tutti gli elementi e le modalità per la jstree, è necessario mettere un punto di debug sia in cromato o Firebug nelle jstree.js di file .. Per esempio è possibile trovare il metodo .bind nel file .js e inserisci un punto di debug su quella particolare riga. Quando quel punto ti colpisce puoi passare il mouse sopra gli argomenti per avere un'idea dei metodi in esso contenuti.

+0

Grazie! Ha funzionato. $ ('. jstree-clicked'). text() è di gran lunga migliore rispetto all'utilizzo di data.rslt.obj.text() poiché prende solo il testo del nodo su cui si sta facendo clic invece di includere tutti i figli. – TheDude

Problemi correlati