情况
当我的页面加载并且我的 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/