这看起来应该很简单,但是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) {
答案 0 :(得分:9)
如果您使用带有复选框的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方法并在该特定行上放置一个调试点.. 当点击中时,您可以将鼠标悬停在参数上以查看其中的方法..