捕获树节点改变事件

Capture tree node changed event

我正在使用 jstree and would like to make some ajax calls when a node is selected. I do not want to trigger the ajax call if the same node is clicked again. The jstree example for listening events uses changed.jstree 如下:

$('#jstree')
  // listen for event
  .on('changed.jstree', function (e, data) {
//my custom code here that should trigger if a new node is selected
});

但是,如果我单击同一个节点两次,就会触发此操作。我在数据或事件对象 e 中找不到任何东西可以告诉我这是否与先前选择的节点相同。 jstree 中有什么可以帮助我解决这个问题吗?如果不是,解决这个问题的最佳方法是什么?

我发现我们可以使用更改的插件来确定选择和取消选择 nodes.It 显示的第一个插件 here

创建 jstree 并在插件数组中包含 changed:

 $('#jstree').jstree(
            {
                "core": {
                    "multiple": false,
                    // so that create works
                    "check_callback": true,
                    "data": menu
                },
                "plugins": ["changed"]
            }
    );

如果选中和取消选中的数组都是空的,表示选择没有改变:

$('#jstree').on('changed.jstree', function (e, data) {
  if (!(data.changed.selected.length === 0 && data.changed.deselected.length === 0))
  {
      //This is when something is really changed.
});