2012-04-03 75 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...' 
     }); 

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