2011-03-30 5 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 옵션을 찾고있다 생각합니다. 당신은 옵션 업데이트

들이 데모 페이지에서 작동 쿠키 기반 지속성에 사용하는 예제 코드 예

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

여기 http://docs.jquery.com/Plugins/Treeview/treeview#options

사용할 수있는에있는 문서를 볼 수 있습니다 - sample 3 (위치는 샘플 2이며 작동하지 않는 것으로 보입니다)는 다음과 같습니다.

자바 스크립트

<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> 

내 유일한 다른 조언이 작동하지 않을 경우 것, 또한, 정적 시도 자바 스크립트/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. 새로 고침 할 때 선택한 트리를 열어 보여줘야합니다. thanks – Sri

+0

'persist :'를 location으로 설정하면 location.href와 일치하는 앵커를 찾고 treeview의 해당 부분을 활성화합니다.쿠키를 사용하면 클릭 할 때마다 쿠키에 위치를 기록하고 다시로드 할 때 데이터를 복원합니다. 위치를 사용하려면 올바르게 설정하지 않았을 수 있습니다. 대신 쿠키를 사용해 볼 수 있습니까? – jon3laze

+0

예 쿠키를 "쿠키"로 변경하면 "+"버튼이 표시되지 않고 상위 링크 아래의 하위 링크를 볼 수 없습니다. – Sri

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를 포함시켜야합니다. 그렇지 않으면 +/- 아이콘이 사라지고 아무 것도 작동하지 않습니다.

이 예전의 코드, 그래서 호환성을 위해 트 리뷰의 자식의 repo에서 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" 
    }); 
});