Jquery cookie плагин - как установить cookie для показа / открытия элемента - PullRequest
0 голосов
/ 07 мая 2011

Когда я перемещаюсь от страницы к другой, мне нужно помнить, какой блок открыт. Это меню с разборным движением. Содержимое div-блока содержит ссылки внутри.

<script type="text/javascript">
    <!--//--><![CDATA[//><!-- 

    $(document).ready(function () {
    $('.acc_container').hide(); 
    $('.acc_trigger:first').addClass('active').next().show(); 

    $('.acc_trigger').click(function(){
        if( $(this).next().is(':hidden') ) { 
            $('.acc_trigger').removeClass('active').next().hide(); 
            $(this).toggleClass('active').next().show();
        }
        return false; 
    });
    });

    //--><!]]>
    </script>


<h2 class="acc_trigger"><a href="#">Messages</a></h2>
    <div class="acc_container">
          <div class="block">content1    </div>
        </div>
    <h2 class="acc_trigger"><a href="#">Categories</a></h2>
        <div class="acc_container">
          <div class="block">content2    </div>
        </div>
.....
<h2 class="acc_trigger"><a href="#">Clients</a></h2>
        <div class="acc_container">
          <div class="block">content10   </div>
        </div>

1 Ответ

2 голосов
/ 07 мая 2011

Попробуйте это:

$(document).ready(function () {
    $('.acc_container').hide(); 
    $('.acc_trigger')
      .eq( $.cookie('activeTrigger'))//<!-- read index from cookie
        .addClass('active').next().show(); 

    $('.acc_trigger').click(function(){
       $.cookie('activeTrigger',$('.acc_trigger').index(this));//<!-- set the cookie
        if( $(this).next().is(':hidden') ) { 
            $('.acc_trigger').removeClass('active').next().hide(); 
            $(this).toggleClass('active').next().show();
        }
        return false; 
    });
    });

Он сохраняет индекс кликаемого элемента внутри $('.acc_trigger') в файле cookie, затем использует этот индекс для выбора этого элемента с помощью $().eq()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...