javascript-如何使jstree在初始化时为空?
作者:互联网
单击按钮后,我向控制器发送一些密钥,并使用json获取列表,列表中的数组就像我的jstree中的孩子一样,
$("#btnSearch").on("click", function () {
alert("I'm also here");
$.ajax({
type: "POST",
url: "/Claims/JSTree",
success: function (response) {
var clients = [];
var claimKeys = [];
$.each(response.ClientNames, function (i, item) {
clients.push(item);
});
alert(clients);
$.each(response.ClaimNumbers, function (i, item) {
claimKeys.push(item);
});
alert(claimKeys);
$('#FolderTree').jstree({
'core': {
'data': [
{
'text': 'Client',
'state': {
'opened': false,
'selected': false
},
'children': clients
},
{
'text': 'Claim key',
'state': {
'opened': false,
'selected': false
},
'children': claimKeys
},
]
},
"plugins": ["checkbox"]
});
}
});
});
});
第一次一切正常,当第二次我传递不同的键时,我得到了列表,它甚至显示了警报中的值,但我的jstree仍然保留了以前的值.除非停止并重新启动调试,否则jstree不会变成空..是否有一种方法可以在用子对象填充之前清空jstree?
解决方法:
尝试使用以下代码,该代码首先破坏实例:
...
var tmp = $('#FolderTree').jstree(true);
if(tmp) { tmp.destroy(); }
$('#FolderTree').jstree({ ...
还要确保您使用的是最新的jsTree版本.
标签:jstree,javascript,jquery 来源: https://codeday.me/bug/20191120/2042940.html