取消选择所选的treenode JStree - jquery

Ced*_*ger 12 html jquery jstree

情况

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

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

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

有人能帮我吗?

链接)

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

fle*_*tch 11

今天突然出现了这个问题.我预计至少可以在初始化树时设置一个配置选项.虽然它不漂亮,但我这样做是为了规避问题:

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();
Run Code Online (Sandbox Code Playgroud)

本质上,我正在跟踪所选节点并针对已单击的节点进行检查.这种方法的缺点是,如果你在"changed.jstree"上有一个回调触发,它将触发两次,因为你先"选择"然后"取消选择",如果它已被选中.