2013-04-20 1 views
0

WordPress 테마가 내 데모 사이트에 도착할 때 사용자가 레이아웃을 변경하기위한 데모 패널을 만들고 있습니다. 사용자가 선택 드롭 다운 상자를 통해 값을 변경하면 해당 시간에 쿠키가 설정됩니다.페이지 새로 고침 후 쿠키 값을 유지하는 방법

페이지를 새로 고친 후 구현할 ACTIONS를 표시하는 데 문제가 있습니다. 따라서 쿠키는 값을 저장하지만 페이지를 새로 고친 후에 CSS 동작이 유지되지 않습니다. 나는 jQuery에별로 좋지 않아 어떤 도움을 주시면 감사하겠습니다. 여기에 코드입니다 :

$('#montage-demo-panel select.body-style-layout').change(function() { 

     // Apply cookie 
     $.cookie('body-style-layout', $(this).val(), { path: '/' }); 

        var value = $(this).val(); 
        if (value == 'fixed') { 
        var wrapper = $('#wrapper'); 
        var header = $('#header'); 
        var masthead = $('#masthead'); 
        var branding = $('#branding'); 

        wrapper.removeAttr('style'); 
        header.removeAttr('style'); 
        masthead.removeAttr('style'); 
        branding.removeAttr('style'); 

        wrapper.removeClass('wrapper-full purple-header-full'); 
        header.removeClass('header-full'); 
        masthead.removeClass('masthead-full'); 
        branding.removeClass('branding-full'); 
        location.reload(); 

        } else { 

        var wrapper = $('#wrapper'); 
        var header = $('#header'); 
        var masthead = $('#masthead'); 
        var branding = $('#branding'); 
        var mainbg = $('#main-bg'); 
        var access = $('#access'); 

        wrapper.removeClass('purple-header'); 

        wrapper.addClass('wrapper-full purple-header-full'); 
        header.addClass('header-full'); 
        masthead.addClass('masthead-full'); 
        branding.addClass('branding-full'); 
        mainbg.addClass('main-bg-full'); 
        access.addClass('access-full'); 

     // Re-fresh page 
     location.reload(); 
       } 
    }); 
+0

페이지 새로 고침 후 쿠키 값이 더 이상 존재하지 않습니까? – egig

+0

명확하지 않은 것에 대해 유감스럽게 생각합니다. 쿠키 값은 그대로 유지되지만 CSS 값이 그대로 유지되지 않습니다. 페이지를 새로 고치는 것처럼 원래 값으로 되돌립니다. 그러나 실제 쿠키 값 자체는 동일하게 유지됩니다. –

+0

'change()'이벤트에서 클래스를 제거하고 추가하는 것으로 스타일을 구현합니까 ?? – egig

답변

1

을 ... 그냥 change(); 이벤트에 스타일을 적용하는 경우, 그것은 확실히 실 거예요 페이지 새로 고침에 영향을 미치는 것. 다음과 같이 매번 페이지를 새로 고침 할 때마다 쿠키 값을 확인하는 것이 좋습니다.

$(function(){ 
    var cookieval = $.cookie('cookie-key'); 
    if (cookieval === 'something'){ 
     //here implement style according to 'something' 
    } else { 
     //here implement another style 
    } 
}); 

행운을 빌어 요 !!

UPDATE :

  1. 장소 페이지에 아무 곳이나 위의 코드;
  2. 쿠키를 설정하고 선택 변경시 다시로드하면됩니다. like :

    $('#montage-demo-panel select.body-style-layout').change(function() { 
        $.cookie('body-style-layout', $(this).val(), { path: '/' }); 
        location.reload(); 
    } 
    
  3. done.

+0

Charlie, 어떻게'select.body-style'을 호출하고 답으로 구현할 수 있습니까? 나는 그것을하는 방법에 관해서 혼란 스럽다. –

+0

방금 ​​답변을 업데이트했습니다. – egig

+0

환상적입니다, 찰스! 그것은 시간이 좀 걸렸지 만 마침내 효과가있었습니다. 정말 고마워! –

관련 문제