我正在使用jstree,并希望在选择节点时进行一些ajax调用。如果再次单击同一节点,我不想触发ajax调用。 jstree example for listening events使用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中有什么可以帮我解决这个问题吗?如果不是最好的解决方法是什么?
答案 0 :(得分:0)
我发现我们可以使用更改的插件来确定选定和取消选择的节点。这是显示的第一个插件here
在插件数组中创建jstree并包含已更改:
$('#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.
});