gpt4 book ai didi

javascript - jQueryFileTree 如何清除实例、重新实例化新实例或刷新

转载 作者:行者123 更新时间:2023-12-03 07:14:06 25 4
gpt4 key购买 nike

我正在使用jQuery FileTree 。通过 javascript ajax(老式 javascript xmlhttp 请求,而不是 jQuery)上传文件后,我使用以下代码调用 fileTree:

$('#jstree').fileTree({
script: '/ajax/file_tree2/' + path,
multiFolder: true,
expandSpeed: 250,
collapseSpeed: 250
});

...它会生成一个漂亮的图形文件树,我可以在其中单击(path 变量是新文件夹,用作 URI 段变量,我只是复制了服务器端连接器 jQueryFileTree.php 代码转换为 CodeIgniter Controller 类中的公共(public)函数。这是额外信息,我认为与该问题没有任何关系,仅供引用)。

但是,由于某种原因,当我通过上传新文件(无需重新加载页面)进行第二次调用时,文件树不会更新或刷新。当我为不同的文件夹上传新文件时,我想刷新树结构。

我尝试使用加载器 gif 清除 #jstree 元素本身:

$('#jstree').html('<img src=\"'+$("#base_url").html()+'/assets_/images/loading/loading36.gif\" />');

...或者甚至只是清除 html:

$('#jstree').html('');

我尝试过其他小部件类型库中的命令,例如“销毁”或“刷新”:

$('#jstree').fileTree.destroy();

$('#jstree').fileTree({
refresh: true,
script: '/ajax/file_tree2/' + path,
multiFolder: true,
expandSpeed: 250,
collapseSpeed: 250
});

这些要么不执行任何操作,要么返回 js 错误。

最佳答案

我下载了 v2.1.4 的原始源代码 (467904a3ab5c13df094ffe01ddb0d0fea24c5d6a) 并修改了第 203 行:

if (!data) {

if (!data || (Object.prototype.toString.call(args) === '[object Object]' && args.reload)) {

现在,如果我想重新加载 fileTree,我只需在参数数组中传递“reload: true”即可。

关于javascript - jQueryFileTree 如何清除实例、重新实例化新实例或刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com