2011-03-30 53 views
1

如何使用jquery treeview插件時應用緩存。 我還需要在刷新時顯示選中的樹狀結構。jquery樹視圖緩存

http://jquery.bassistance.de/treeview/demo/

代碼

<div class="Content"> 
<%= javascript_include_tag "jquery.treeview" %> 
<%= stylesheet_link_tag "jquery.treeview" %> 

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery("#page_tree").treeview({ 
      persist: "location", 
      collapsed: true 
     }); 
    }); 
</script> 

<ul id="page_tree"> 
<% @pages.each do |page| %> 

    <li id ="title"> 
    <%= page.name %> 
    <ul> 
     <li><%= link_to "#{page.title}" %></li> 
    </ul> 
    </li> 
<% end %> 

回答

1

我認爲你正在尋找persist選項。您可以查看哪些選項可以在這裏http://docs.jquery.com/Plugins/Treeview/treeview#options

$(".selector").treeview({ 
    persist: "cookie", 
    cookieId: "navigationtree" 
}) 

更新

,他們使用基於Cookie的持久性,其演示頁面上工作的示例代碼的文檔 - sample 3(基於位置的是樣本2,它似乎不起作用)如下:

的Javascript

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     $('#page_tree').treeview({ 
      collapsed: true, 
      persist: cookie 
     })  
    }) 
</script> 

HTML

<ul id="page_tree"> 
<% @pages.each do |page| %> 
    <li id="title"><span> <%= page.name %> </span> 
    <ul> 
     <li> <%= link_to "#{page.title}" %> </li> 
    </ul>  
    </li> 
<% end %> 
</ul> 

我唯一的建議是,如果這行不通,嘗試靜態鏈接到的JavaScript/CSS文件,看看是否可行,還您將需要使用cookie.js腳本。

<link rel="stylesheet" href="http://jquery.bassistance.de/treeview/jquery.treeview.css" /> 
<script type="text/javascript" src="http://jquery.bassistance.de/treeview/jquery.treeview.js" ></script> 
<script type="text/javascript" src="http://jquery.bassistance.de/treeview/lib/jquery.cookie.js"></script> 
+0

喜喬恩,用你的選項時,無法正常工作。我現在只使用兩個選項:「位置」, 摺疊:true。我還需要在刷新時顯示選中的樹。謝謝 – Sri 2011-03-30 04:20:31

+0

如果您將'persist:'設置爲位置,它會查找與location.href匹配的錨並激活樹視圖的該部分。使用Cookie,每次點擊時它會將位置寫入Cookie,並在重新加載時恢復數據。您可能沒有正確設置使用位置。你可以嘗試cookie嗎? – jon3laze 2011-03-30 04:28:42

+0

是的,如果我更改爲「cookie」,「+」按鈕不顯示,無法查看父項下的子鏈接。 – Sri 2011-03-30 04:57:12

0
<div class="Content"> 
    <%= javascript_include_tag "jquery.treeview" %> 
    <%= stylesheet_link_tag "jquery.treeview" %> 

    <script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery("#page_tree").treeview({ 
     persist: "location", 
     collapsed: true 
     }); 
    }); 
    </script> 

    <ul id="page_tree"> 
    <% @pages.each do |page| %> 

     <li id ="title"> 
     <%= page.name %> 
     <ul> 
      <li><%= link_to "#{page.title}" %></li> 
     </ul> 
     </li> 
    <% end %> 
    </ul> 
0

我知道這是關於一個過時的jQuery插件,一個老問題,但我今天剛遇到這個問題。

如果你想使用persist: 'cookie'你需要包括jquery.cookie.js。否則,+/-圖標將消失,沒有任何工作。

這是舊代碼,所以我抓住從TreeView的混帳回購協議jquery.cookie.js兼容性: https://github.com/jzaefferer/jquery-treeview/tree/master/demo

此外,collapsed: true似乎違背持久性的想法。

包括:

<link rel="stylesheet" href="/treeview/jquery.treeview.css" /> 
<script type="text/javascript" src="/treeview/jquery.treeview.js"></script> 
<script type="text/javascript" src="/treeview/lib/jquery.cookie.js"></script> 

JS:

jQuery(document).ready(function(){ 
    jQuery("#page_tree").treeview({ 
     persist: "cookie" 
    }); 
});