事件监听

在 jsTree 中,可以通过容器触发各种事件。如果你想进一步了解哪些事件可以进行监听,请查阅我们文档中的完整事件列表

可以通过事件回调中的 data 参数获取更多信息。

在大多数涉及到节点的情况下,你都能得到所传递的完整节点对象。另外,假如你已经拿到节点 ID,那当你需要索取节点时可通过 .get_node() 获得。节点对象内部与加载时的 JSON 格式是非常相似的,但会存在一些额外的字段,不过这些字段都有它的用处:

  • children 是一个数组,数组元素是该节点的所有直接子节点的 ID
  • children_d 也是一个数组,包含的是该节点所有子节点及其后代的 ID
  • parent 是该节点的父节点 ID
  • parents 则是一个数组,包含其父节点及其所有祖先节点的 ID
$('#jstree')
  // listen for event
  .on('changed.jstree', function (e, data) {
    var i, j, r = [];
    for(i = 0, j = data.selected.length; i < j; i++) {
      r.push(data.instance.get_node(data.selected[i]).text);
    }
    $('#event_result').html('Selected: ' + r.join(', '));
  })
  // create the instance
  .jstree();
Listening for events example