jquery - 取消选择选定的树节点 JStree - jQuery

标签 jquery html jstree

情况

当我的页面加载并且我的 TreeView 可见时,没有选择树节点。 当我点击一个节点时,它被选中,这是默认行为。

问题

如何在单击同一节点时取消选择该节点?所以我想点击一个选中的节点来取消选中它。我一直在搜索文档。但是事件“select_node”将首先选择节点,然后我才能检查它的 selectstatus。

我知道有一种方法可以在我单击按钮时使用代码取消选择节点,但这不是我想要的。我想点击已经选中的节点。

我该怎么做?

链接

文档事件 JStree:http://www.jstree.com/api/#/?q=.jstree%20Event&f=enable_node.jstree

最佳答案

今天我遇到了这个问题。我希望至少有一个可以在初始化树时设置的配置选项。虽然它并不漂亮,但这是我为规避这个问题所做的:

var _selectedNodeId;
$("#myTree").on("select_node.jstree", function (e, _data) {
    if ( _selectedNodeId === _data.node.id ) {
        _data.instance.deselect_node(_data.node);
        _selectedNodeId = "";
    } else {
        _selectedNodeId = _data.node.id;
    }
}).jstree();

本质上,我正在跟踪选定的节点并将其与已单击的节点进行核对。此方法的缺点是,如果您在“changed.jstree”上触发回调,它将触发两次,因为您先“选择”,然后“取消选择”(如果它已被选中)。

关于jquery - 取消选择选定的树节点 JStree - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071716/

相关文章:

javascript - 如何向vim添加javascript(html5对象)的自动完成功能?

javascript - 手动设置节点的焦点/突出显示

json - 以jstree形式使用自定义Json数据

javascript - 如何使用 jplayer 获取进度事件

html - CSS3 布局网格 - 粘性标题

javascript - 如何从 HTML 按钮中删除效果?

javascript - 隐藏 jsTree 中的复选框

javascript - Firefox 给出了错误的图像宽度和高度值

jQuery.parseJSON - Chrome 和 Safari 自动解析 JSON

javascript - Ajax 在一个事件中只执行一次