5

这看起来应该很简单,但是 jstree “data.rslt.obj.text()” 方法喜欢返回当前节点的文本以及它的所有子节点。我已经弄清楚如何通过重命名节点(new_name)来获取当前节点名称,但是当我简单地选择它时,如何仅获取当前节点的文本?此外,如果我能深入了解如何使用 chrome 或 firebug 在 jstree 中找到所有这些方法和属性,我将不胜感激。例如,当我选择“data.rslt”时,我会在哪里查看出现的元素列表。谢谢!

 $("#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) {
4

1 回答 1

11

如果您使用带有复选框的 jstree,则可以检查length复选框选择器的 。

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

如果您不喜欢复选框,请使用此选择器。

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

要获取 jstree 的所有项目和方法的列表,您需要在 jstree.js 文件中的 chrome 或 Firebug 中放置一个调试点。例如,您可以在 .js 中找到 .bind 方法并放置一个该特定行上的调试点..当该点命中时,您可以将鼠标悬停在参数上以一瞥其中的方法..

于 2012-09-07T15:47:05.667 回答