【发布时间】:2012-04-03 18:26:17
【问题描述】:
我相信这很容易实现,但我不知道怎么做。是否可以在不刷新整个页面的情况下重新加载 jQuery 插件,以便刷新其值?我读过类似的问题,但它们是针对特定插件的。我想知道是否有人知道实现此目的的“通用”方法,因此它可以在许多 JQ 插件中使用。
无论如何,更具体地说,我问这个问题是为了重新加载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>
在某个时候,我有 AJAX+PHP 代码,可以让我删除选定的文件。这很好用!但是已删除的文件仍显示在文件树中。如果我在该函数的成功事件中添加window.location.reload(),显然它会重新加载整个页面,并且我的树会按预期显示文件夹中的实际文件。
问题:有没有办法在不刷新整个页面的情况下重新加载?
请注意这个插件的作者在 Twitter 上告诉我:
@metafaniel 问题是它不再用于我们的任何项目。 这是一个需要大修的旧脚本。通过@abeautifulsite
@metafaniel 您必须自己添加。由于插件非常 旧的,它没有完整的 API。通过@abeautifulsite
我没有更多时间用另一个插件重写我的代码,我必须这样完成它。
【问题讨论】:
-
通常情况下,您可以使用相同的参数再次调用插件来重置/重新加载它。
-
清空父
div(#fileTree) 并再次调用插件 -
嗯,是的,当然感谢两位。是的,这是我以前做过的一种方式,但必须有其他方式......我在 JS 文件中获得了 Javascript 代码......也许有一些代码可以直接运行 .js 代码?你知道这样做的方法吗?感谢您的帮助 =)
-
您找到更好的方法了吗?
-
我找到了一种使用我正在使用的插件的方法。我认为答案是它取决于您使用的插件。它不是 jQuery 本身提供的东西。 IE。插件应该提供一种分离/重新附加其行为的方法和/或它应该处理对文档的更改。
标签: jquery jquery-plugins reload