jsTree onSelect活动

Dyl*_*ens 18 javascript jstree

我一直在尝试获取在jsTree中选择的节点的文本.我能够填充树并触发onSelect事件,但我找不到单击的节点.我在网上看到了data.rslt.obj.attr("data")用于获取文本的示例,但这对我来说是未定义的.此外,当我尝试使用所选节点时,.jstree('get_selected')我无法在对象中的任何位置找到节点文本.如何获取节点文本?

这是我的onSelect回调函数:

function onSelect(event, data)
{
    // Get the name of the equipment that was selected.
    var selected_node = $("#equipment_tree").jstree('get_selected');
    var equipment_name = data.rslt.obj.attr("data");
}
Run Code Online (Sandbox Code Playgroud)

sha*_*ncs 47

2018年更新.

感谢@ProfK的评论,新版本的jstree中的API发生了变化.在jstree v3.1.0(或更早版本)中,API已更改为:

$("#treeContainer").on(
        "select_node.jstree", function(evt, data){
            //selected node object: data.node;
        }
);
Run Code Online (Sandbox Code Playgroud)

对于jstree旧版本(2013年之前).

您可以通过以下方式获取所选节点对象及其文本:

$("#treeContainer").bind(
        "select_node.jstree", function(evt, data){
            //selected node object: data.inst.get_json()[0];
            //selected node text: data.inst.get_json()[0].data
        }
);
Run Code Online (Sandbox Code Playgroud)

  • 啊哈,这很有效.我找到的更短的版本是`data.inst.get_text()`. (2认同)

Beh*_*adi 18

从节点获取文本的jstree新版本应该使用data.node.text

$("#treeContainer").on("select_node.jstree",
     function(evt, data){
          alert(data.node.text);
     }
);
Run Code Online (Sandbox Code Playgroud)