我有一个动态构建的jsTree,允许用户选择他选择的任何节点。
现在我正在尝试将此树只读取,以便其他用户可以在不改变的情况下查看信息。
我找到的所有示例都是关于禁用特定节点......
我的问题是:有没有办法将树上的所有复选框定义为只读?
正在使用的代码:
jQuery.noConflict();
jQuery(
function() {
jQuery("#divTree").jstree(
{
"plugins": ["themes", "json_data", "checkbox", "sort", "ui", "real_checkboxes"],
json_data: { data: data }
}
);
}
);
答案 0 :(得分:4)
解决了问题。这是任何需要它的人的解决方案。
jQuery.noConflict();
jQuery(
function() {
jQuery("#divTree")
<% if(isReadOnly) { %>
.bind("loaded.jstree", function (event, data)
{
jQuery('.jstree a').click(function() {return false;});
})
<% } %>
.jstree(
{
"plugins": ["themes", "json_data", "checkbox", "sort", "ui", "real_checkboxes"],
json_data: { data: data }
}
);
}
);
答案 1 :(得分:0)
您可以在默认的type
中定义它,或者为特定节点定义您自己的type
,然后将它们绑定到它:
jQuery("#divTree").jstree({
"types": {
"default": {
"check_node": false,
"uncheck_node": false
}
},
"plugins": ["themes", "json_data", "checkbox", "sort", "ui", "real_checkboxes"],
"json_data": { data: data }
});
如果我是你,我只需将types
声明包装在服务器端if
语句中,以确定是否要将此树读取为只读。