我使用jsTree jQuery插件来显示5级深度树.我想不在最后一级显示复选框.有没有办法在设置或一些jquery处理中执行此操作后我可以删除这些复选框?我能够使用类型插件禁用它们,但我真的希望它们不可见.
这是我的树的一个例子"[x]"=一个复选框
[x] lvl 1
[x] lvl 2
[x] lvl 3
[x] lvl 4
[x] lvl 5a
[x] lvl 5b
[x] lvl 5c
Run Code Online (Sandbox Code Playgroud)
这是我想要的一个例子"[x]"=一个复选框
[x] lvl 1
[x] lvl 2
[x] lvl 3
[x] lvl 4
lvl 5a
lvl 5b
lvl 5c
Run Code Online (Sandbox Code Playgroud)
编辑答案找到了
找到了答案.添加将在加载树时调用的.bind,然后添加一些简单的jquery来隐藏复选框.
$("#right-tree2").bind("loaded.jstree", function(event, data) {
$('.lvl4').find('ins.jstree-checkbox').hide();
})
.jstree({....});
Run Code Online (Sandbox Code Playgroud)
Mig*_*ell 18
如果你是从JSON创建树,那么我发现删除节点的最简单方法是使用一些css.
在实际的JSON中,将要禁用的节点的a_attr字段设置为"no_checkbox",如下所示.这会将类"no_checkbox"添加到<a>
包含节点文本,图标和复选框的元素中.
node = {
text: "foo",
a_attr: {
class: "no_checkbox"
}
}
在css中,创建一个这样的选择器:
.no_checkbox>i.jstree-checkbox
{
display:none
}
完成!
这将仅选择<a>
与no_checkbox
类直接位于元素内的复选框,并将从布局中删除它们.此方法优于其他答案的优点是,您可以通过no_checkbox
从<a>
元素中删除类来恢复复选框.例如,您可以在事件的事件处理程序中执行此操作select_node.jstree
,然后获取作为参数传入的DOM节点.
当然,如果您使用HTML而不是JSON输入数据,您可以手动将css类添加到html中,或者使用php /其他服务器端语言,它也可以正常工作.
小智 2
您还可以阻止复选框插件添加它们:
将一个类添加到<a>
您不希望有复选框的任何节点类型的标记中(我使用与我的相关相同的类)。
编辑jquery.jstree.js Checkbox 插件以将类添加到 .not() 语句,其中复选框将添加到 DOM。在 1.0-rc3 中,它看起来像这样(大约第 2870 行):
$t.children("a" + (_this.data.languages ? "" : ":eq(0)") ).not(":has(.jstree-checkbox) // ADD THE LIST OF CLASSES HERE - BE SURE TO INCLUDE THE DOTS AND SEPARATE WITH COMMAS ").prepend("<\ins class='jstree-checkbox'> <\/ins>").parent().not(".jstree-checked, .jstree-unchecked").addClass( ts ? "jstree-unchecked" : c );
Run Code Online (Sandbox Code Playgroud)这样,您就不必添加然后删除它们(如果可以避免的话,这是不好的做法)。
归档时间: |
|
查看次数: |
12055 次 |
最近记录: |