我有一个jstree,其中我使用select_node事件来切换节点(展开),因此删除了树中的切换箭头,因为它们看起来很丑陋,我不需要它们。
现在我已添加了要在树中使用的复选框插件,但发现插件处于活动状态时禁用了select_node事件。
如何在复选框插件处于活动状态时切换节点,而无需重新添加丑陋的切换箭头?我可以在check / uncheck事件中执行此操作,但我不希望每次扩展节点时都选中/取消选中。
答案 0 :(得分:2)
JsTree提供样式themes,因此您可以定义自己的样式并加载它。 你只需要替换精灵图像,这就是那个。
答案 1 :(得分:2)
假设您有http://www.jstree.com/documentation/checkbox中的示例树,其中包含 箭头删除。您无法在单击事件上执行复选框选择和分支切换,而不会中断ui交互。但是,由于非叶节点不携带模型数据 (它们的复选框仅用作select-all / deselect-all函数),你可以删除 来自它们的复选框,将点击事件重新定义为“toggle_node”,同时 把剩下的都留下来了。
您可以删除非叶子li节点上的复选框,并对其进行单击事件 切叶子。这将实现您期望的行为,但将删除 “选择全部/取消全选”非叶节点复选框的功能。
只需在示例页面上添加标有“+”的下面一行。
$("#demo1").jstree({ "plugins" : [ "themes", "html_data", "checkbox" ] }); + $("#demo1 li").not(".jstree-leaf").each(function() { + $("a ins.jstree-checkbox", this).first().hide(); + $("a", this).first().click(function(event) { + $("#demo1").jstree("toggle_node", "#"+$(this).parent().attr('id')); + event.stopPropagation(); + event.preventDefault(); + }); + });
答案 2 :(得分:2)
最新版本的jstree现在允许通过单击复选框或节点标题来单独检查和选择节点。