2012-07-19 3 views
4

, 그러나 나는 내가 할 수없는 나는 마지막 활성 상태를 기억하는 쿠키의 사용에 성공적이다 : 첫번째 방문 붕괴에jQuery UI 아코디언 + 쿠키 - 기본값으로 종료? 페이지 - 새로 고침 할 때 jQuery를 UI 아코디언

  1. 세트

  2. 은 사용자가 수동으로 내가 "활성"옵션을 조건문으로 함수를 작성하려고 시도했지만 실패한 적이 개방

후 붕괴 경우 쿠키가 기억이있다.

jQuery(document).ready(function(){ 
     var act = 0; 
     $("#accordion").accordion({ 
      create: function(event, ui) { 
       //get index in cookie on accordion create event 
       if($.cookie('saved_index') != null){ 
        act = parseInt($.cookie('saved_index')); 
       } 
      }, 
      change: function(event, ui) { 
       //set cookie for current index on change event 
       $.cookie('saved_index', null); 
       $.cookie('saved_index', ui.options.active); 
      }, 
      active:parseInt($.cookie('saved_index')), 
      collapsible: true 
     }); 
    }); 

http://jsfiddle.net/77xC9/18/

답변

2
jQuery(document).ready(function(){ 
    $("#accordion").accordion({ 
     change: function(event, ui) { 
      $.cookie('saved_index', ui.options.active !== false ? ui.options.active : null); 
     }, 
     active: $.cookie('saved_index') != null ? parseInt($.cookie('saved_index')) : false, 
     collapsible: true 
    }); 
}); 

PS : 로컬 파일로 페이지를 열면 Google 크롬 쿠키를 허용하지 않습니다.

+0

첫 번째 방문시 축소 된 것으로 표시되는 문제 # 1을 해결합니다. 그러나 사용자가 메뉴를 접었는지 여전히 기억하지 못하는 것 같습니다. (모든 메뉴가 닫혀 있는지 확인하고 새로 고침을 누르십시오). http://jsfiddle.net/77xC9/25/ – Joe

+0

코드를 수정했습니다. – Researcher

11

공유 코드가 jQuery UI 1.9 이상에서 작동하지 않습니다. 다음 코드가 작동합니다!

jQuery(document).ready(function() { 
    $("#accordion").accordion({ 
     activate: function(event, ui) { 
      $.cookie('saved_index', $("#accordion").accordion("option", "active")); 
     }, 
     active: parseInt($.cookie('saved_index')), 
     collapsible: true 
    }); 
}); 
+1

왜'$ .cookie ('saved_index', null);'라인이 필요합니까? –

+0

@FilipSpiridonov 실제로, 그 라인은 필요하지 않고 잘 동작합니다. – Chronozoa

관련 문제