2011-05-02 2 views
0

Я закодировал свой собственный JQuery аккордеон, и у меня есть проблема.Повторно открыть jQuery аккордеон на предыдущем разделе после загрузки страницы

Мне нужно открыть текущий раздел после ссылки.

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

Есть ли у кого-нибудь рекомендации по использованию значения $ accionPrev? Я попытался получить доступ к этому var, но любые запросы, чтобы сделать его видимым, не работали.

Я был бы очень признателен за любую помощь, я боролся весь день :)

Большое спасибо

Роберт

Jquery:

var $runAccordionOnce = 0; var $accordionPrev; 


$(".sidebar_game_header").click(function(){ 
       if($runAccordionOnce > 0) { 

       $accordionPrev.slideUp('normal'); 
       $accordionPrev.prev().css({'background-position' : 'top left'}); 

       } 


    if($(this).next().is(":hidden")){ 
       $accordionPrev = $(this).next(); 
       $(this).next().slideDown('normal'); 
       $(this).css({'background-position' : 'bottom left'}); 
       $runAccordionOnce++;  
    }   

HTML Пример:

<div class="sidebar_game_content_wrapper"><div class="sidebar_game_onepix"></div> 
    <div class="sidebar_game_header"><img src="<?php bloginfo('template_directory'); ?>/images/icn_game1.png" alt="Game 1 Icon"/><div class="sidebar_game_header_text">Game 1</div></div> 
    <div class="sidebar_game_content"> 

     <ul> 
      <li><a href="<?php {echo $url . "&amp;game_id=10&amp;platform_id=3";} ?>">iPhone</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=10&amp;platform_id=4";} ?>">iPad</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=10&amp;platform_id=2";} ?>">Mac</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=10&amp;platform_id=1";} ?>">PC</a></li> 
     </ul> 
    </div> 
</div> 
<div class="sidebar_game_content_wrapper"><div class="sidebar_game_onepix"></div> 
    <div class="sidebar_game_header"><img src="<?php bloginfo('template_directory'); ?>/images/icn_game2.png" alt="Game 2 Icon"/><div class="sidebar_game_header_text">Game 2</div></div> 
    <div class="sidebar_game_content">  
    <ul> 
      <li><a href="<?php {echo $url . "&amp;game_id=9&amp;platform_id=3";} ?>">iOS</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=9&amp;platform_id=2";} ?>">Mac</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=9&amp;platform_id=1";} ?>">PC</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=9&amp;platform_id=6";} ?>">Nintendo DS</a></li> 
      <hr /> 
      <li><a href="<?php {echo $url . "&amp;game_id=9&amp;platform_id=5";} ?>">Nintendo Wii</a></li> 
      <hr /> 
    </ul> 
    </div> 

ответ

2

Переменные Javascript не сохраняются между повторными загрузками страниц.

Вы должны либо

  • передать его в URL (и читать его, когда страница снова загружен)

или

  • сохранить его в cookie и получить доступ к нему с новой страницы.
+0

Спасибо за быстрый ответ, я рассмотрю эти методы. – robertmegone

+0

Кажется, что я уже передал значение, которое мне нужно в URL-адресе, мне просто нужно было инструктировать аккордеон для открытия в разделе с использованием функции .eq() в jquery. – robertmegone

+0

@robertmegone, рад слышать, что вы его отсортировали! –

0

Вы можете отправить текущее значение секции аккордеона, которое открыто, когда вы нажимаете на ссылку и затем читаете запрос при загрузке страницы (в js). По умолчанию (для загрузки первой страницы) значение по умолчанию может означать, что вам нужно загрузить первый раздел.

Возможно, вам придется вручную манипулировать css, когда вы открываете отдельный раздел вручную с помощью скрипта.

+0

Большое спасибо за ваш ответ, а не за отправку. Я просто использовал предыдущее значение, которое я написал на URL, чтобы открыть правильный раздел. – robertmegone

Смежные вопросы