2012-09-07 37 views
5

Esto parece que debería ser simple de hacer, pero al método jstree "data.rslt.obj.text()" le gusta devolver el texto del nodo actual así como todos sus elementos secundarios. He descubierto cómo obtener el nombre de nodo actual con el cambio de nombre de un nodo (new_name), pero ¿cómo obtengo el texto de SOLO el nodo actual cuando simplemente lo selecciono? Además, agradecería cualquier información sobre cómo encontraría todos estos métodos y propiedades en el jstree usando Chrome o Firebug. ¿Dónde buscaría en la lista de elementos que aparecen cuando selecciono "data.rslt", por ejemplo? ¡Gracias!¿Cómo obtengo el texto del nodo seleccionado actualmente en 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) { 

Respuesta

9

Si está utilizando el jstree con las casillas de verificación en la que se puede comprobar la length de los selectores de casilla de verificación.

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

Si usted no está en las casillas a continuación, utilizar este selector.

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

para obtener la lista de todos los artículos y métodos para la jstree, hay que poner un punto de depuración en cromo o Firebug en los jstree.js archivo .. Por ejemplo, usted puede encontrar el método .bind en el .js y poner un punto de depuración en esa línea en particular .. Cuando ese punto te golpea puedes pasar el ratón sobre los argumentos para echar un vistazo a los métodos en él ..

+0

¡Gracias! Eso funciono. $ ('. jstree-clicked'). text() es mucho mejor que usar data.rslt.obj.text() ya que solo toma el texto del nodo en el que está haciendo clic en lugar de incluir todos los elementos secundarios. – TheDude

Cuestiones relacionadas