如何让点击选中的 FancyTree 节点再次激活?
How to get click on selected FancyTree node to activate again?
如果我单击我的 fancytree 菜单节点,它们会激活出现在菜单旁边的对话框。这些具有使对话框关闭的取消按钮。但是,当我再次单击相同的菜单项(节点)时,不会再次出现相同的对话框(如我所愿),我认为是因为 Fancytree 认为它是当前选定的节点,所以忽略了它。
如果我改为单击不同的菜单项,它可以正常工作,并且会出现该菜单项的对话框。那么,如何让 Fancytree 在再次单击时为当前选定的菜单项触发相同的 activate:
功能?
在我的取消按钮处理程序中,我尝试使用 node.setSelected(false)
应该取消选择该项目,但当我再次单击同一项目时,对话框仍然不会重新出现。我已经确认它是使用 setSelected(false) 的正确(当前)节点。
我只是在使用标准的 fancytree 配置,例如以下:
var currentMenuItemNode;
$("#tree").fancytree({
activate: function(event, data){
this.currentMenuItemNode = data.node;
}
});
cancelButtonHandler() {
// Close dialog box here
this.currentMenuItemNode.setSelected(false); // Deselect item
}
欢迎任何想法!
如果节点已经处于活动状态,则不会触发 activate
事件,因此 click event 可能就是您要查找的内容:
$("#tree").fancytree({
[...]
click: function(event, data) {
var node = data.node,
// Only for click and dblclick events:
// 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon'
targetType = data.targetType;
// we could return false to prevent default handling, i.e. generating
// activate, expand, or select events
},
});
如果我单击我的 fancytree 菜单节点,它们会激活出现在菜单旁边的对话框。这些具有使对话框关闭的取消按钮。但是,当我再次单击相同的菜单项(节点)时,不会再次出现相同的对话框(如我所愿),我认为是因为 Fancytree 认为它是当前选定的节点,所以忽略了它。
如果我改为单击不同的菜单项,它可以正常工作,并且会出现该菜单项的对话框。那么,如何让 Fancytree 在再次单击时为当前选定的菜单项触发相同的 activate:
功能?
在我的取消按钮处理程序中,我尝试使用 node.setSelected(false)
应该取消选择该项目,但当我再次单击同一项目时,对话框仍然不会重新出现。我已经确认它是使用 setSelected(false) 的正确(当前)节点。
我只是在使用标准的 fancytree 配置,例如以下:
var currentMenuItemNode;
$("#tree").fancytree({
activate: function(event, data){
this.currentMenuItemNode = data.node;
}
});
cancelButtonHandler() {
// Close dialog box here
this.currentMenuItemNode.setSelected(false); // Deselect item
}
欢迎任何想法!
如果节点已经处于活动状态,则不会触发 activate
事件,因此 click event 可能就是您要查找的内容:
$("#tree").fancytree({
[...]
click: function(event, data) {
var node = data.node,
// Only for click and dblclick events:
// 'title' | 'prefix' | 'expander' | 'checkbox' | 'icon'
targetType = data.targetType;
// we could return false to prevent default handling, i.e. generating
// activate, expand, or select events
},
});