2012-04-03 74 views
5

我有一个疑问,它很容易完成,但我找不到如何去做。 是否可以在不刷新整个页面的情况下重新加载JQuery插件,以便刷新它的值?我读过类似的问题,但他们的目标是特定的插件!我想知道是否有人知道“通用”方式来实现这一点,所以它可以在许多JQ插件中使用。应该有办法做到这一点想必......如何重新加载/重绘/更新JQuery插件以刷新其值?

不管怎么说,更具体地说,我问这个问题,重装JQuery File Tree 我有这样的:

JAVASCRIPT

$(document).ready(function() { 
    $('#fileTree').fileTree({ 
     root: '/some/path/to/somewhere/', 
     script: 'js/jqueryFileTree-1.01/connectors/jqueryFileTree.php', 
     folderEvent: 'click', 
     expandSpeed: 1000, 
     collapseSpeed: 1000, 
     multiFolder: false, 
     loadMessage: 'Loading...' 
     }, function(file) { 
      relativePath=file.replace("/some/path",""); 
      aFunction(relativePath, file); 
     }); 
    }); 

HTML

<div id="fileTree" class="fileTree"></div> 

在一定POIN吨,我有AJAX + PHP代码,让我删除选定的文件。这效果很好!但是已删除的文件仍然显示在文件树中。如果我在该函数的成功事件中添加了window.location.reload(),显然整个页面被重新加载,我的树显示文件夹中的实际文件。

问题:有没有办法重新加载它,而不刷新整个页面?

请注意这个插件的作者告诉我的Twitter:

@metafaniel问题是它不再在我们的任何项目中使用。 这是一个旧的旧脚本,需要大修。通过@abeautifulsite

@metafaniel你必须自己添加。由于插件非常旧,因此它没有完整的API。通过@abeautifulsite

我没有更多的时间在办公室重新写我的代码与另一个插件,我必须完成这个!有任何想法吗?请帮助我,谢谢=)

+0

通常,您可以使用相同的参数再次调用插件来重置/重新加载插件。 – Blazemonger 2012-04-03 18:36:13

+0

清空父'div'('#fileTree')并再次调用插件 – js1568 2012-04-03 18:38:09

+1

嗯,是的课程感谢这两个。是的,这是我以前做过的一种方式,但必须有其他方式...我已经得到了JS文件中的Javascript代码......也许有些代码直接运行.js代码?你知道一个办法吗?感谢您的帮助=) – Metafaniel 2012-04-03 22:43:38

回答

0

那么,如果OP是要求一个直接的插件命令来做到这一点,恐怕它可能不存在。这是我的解决方案,工作得很好。你要做的就是在父DIV包住空<div id="jstree"></div>,这样的事情:

<div id="file-tree-holder"> 
    <div id="jstree" ></div> 
</div> 

然后,在你的JavaScript,实例化插件之前,您清除父DIV的内容,然后在父div内重新编写目标div,如下所示:

 $('#file-tree-holder').html(''); 
     $('#file-tree-holder').html('<div id="jstree" ></div>'); 
     $('#jstree').fileTree({ 
      script: '/ajax/file_tree2/' + path, 
      multiFolder: true, 
      expandSpeed: 250, 
      collapseSpeed: 250, 
      loadMessage: 'Loading...' 
     }); 

...并且它工作得很好。