fancytree - 如何让点击选中的 FancyTree 节点再次激活?

标签 fancytree

如果我单击我的 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 节点再次激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58561258/

相关文章:

jquery - 花式树禁用节点的复选框选择

javascript - 花式树复选框

symfony - 错误:预期的 Doctrine\ORM\Query\Lexer::T_IDENTIFIER,得到 '*'

javascript - 获取 FancyTree 中选定节点的父节点

javascript - 无法使用 ExtDnd5 对节点进行排序,只能设置为子节点

Dynatree 或 Fancytree 用于生产?

javascript - Javascript Fancy 树中根节点的完整路径

php - fancytree 不加载 json 数据

javascript - 如何区分 fancytree 中的展开与点击?

javascript - Fancytree打开了,怎么默认全部选中?