发现很难让 jsTree 插件在关闭状态下初始化
Finding difficulty trying to get the jsTree plugin to initialize in a closed state
大家下午好。
我们正在为用户配置文件设置权限树。
我们使用此处的 jsTree 插件:jQuery jsTree Plugin
过版本为:3.1.0
他们当前版本为:3.1.0
这是我们的用法:
/* Initialize any jsTress passed in. */
$( "." + section + "-panel-" + panel ).find( "div[class*='jstree']" ).each(function(){
$(this).jstree( { "core" : { "data" : $.parseJSON( $(this).prev().html() ) },
"plugins" : [ "checkbox","wholerow" ]
} );
/* Try to force close-all tree nodes. */
$(this).jstree( "close_all",-1 );
})
我们手动尝试强制关闭这里的所有节点,尽管它不起作用。
JSON 传入初始化方法的数据包括节点状态属性。
查看实际数据样本:
[
{
"id":"ADMIN",
"text":"ADMIN",
"state":
{
"selected":false
},
"children":
[
{
"id":"ADMIN_ADD_STAFF",
"text":"ADMIN_ADD_STAFF",
"state":
{
"opened":false,
"disabled":false,
"selected":true
}
},
{
"id":"ADMIN_NEW_MSG",
"text":"ADMIN_NEW_MSG",
"state":
{
"opened":false,
"disabled":false,
"selected":true
}
}
/* Truncated here for brevity of question. */
/* See link below for complete data object. */
]
}
]
有关完整数据对象的副本,请参阅 PasteBin。
如您所见,opened
属性始终为 false,但我们发现节点始终在打开状态下初始化。
如果您手动关闭节点,节点将关闭。
注意:我们没有使用在浏览器中启用节点状态持久性的插件。
似乎无法理解为什么节点不会初始化为关闭...
提前致谢!
确保在 ready.jstree
事件触发后调用 close_all
:
$(this),jstree(...).on('ready.jstree', function (e, data) {
data.instance.close_all();
});
也可以简单的配置jsTree不展开onload选中的节点:
http://www.jstree.com/api/#/?q=expand&f=$.jstree.defaults.core.expand_selected_onload
$(this).jstree({
core : {
expand_selected_onload : false,
...
此致,
伊万
大家下午好。
我们正在为用户配置文件设置权限树。
我们使用此处的 jsTree 插件:jQuery jsTree Plugin
过版本为:3.1.0
他们当前版本为:3.1.0
这是我们的用法:
/* Initialize any jsTress passed in. */
$( "." + section + "-panel-" + panel ).find( "div[class*='jstree']" ).each(function(){
$(this).jstree( { "core" : { "data" : $.parseJSON( $(this).prev().html() ) },
"plugins" : [ "checkbox","wholerow" ]
} );
/* Try to force close-all tree nodes. */
$(this).jstree( "close_all",-1 );
})
我们手动尝试强制关闭这里的所有节点,尽管它不起作用。 JSON 传入初始化方法的数据包括节点状态属性。
查看实际数据样本:
[
{
"id":"ADMIN",
"text":"ADMIN",
"state":
{
"selected":false
},
"children":
[
{
"id":"ADMIN_ADD_STAFF",
"text":"ADMIN_ADD_STAFF",
"state":
{
"opened":false,
"disabled":false,
"selected":true
}
},
{
"id":"ADMIN_NEW_MSG",
"text":"ADMIN_NEW_MSG",
"state":
{
"opened":false,
"disabled":false,
"selected":true
}
}
/* Truncated here for brevity of question. */
/* See link below for complete data object. */
]
}
]
有关完整数据对象的副本,请参阅 PasteBin。
如您所见,opened
属性始终为 false,但我们发现节点始终在打开状态下初始化。
如果您手动关闭节点,节点将关闭。 注意:我们没有使用在浏览器中启用节点状态持久性的插件。
似乎无法理解为什么节点不会初始化为关闭... 提前致谢!
确保在 ready.jstree
事件触发后调用 close_all
:
$(this),jstree(...).on('ready.jstree', function (e, data) {
data.instance.close_all();
});
也可以简单的配置jsTree不展开onload选中的节点: http://www.jstree.com/api/#/?q=expand&f=$.jstree.defaults.core.expand_selected_onload
$(this).jstree({
core : {
expand_selected_onload : false,
...
此致, 伊万