Снова откройте аккордеон jQuery в предыдущем разделе после загрузки страницы. - PullRequest
0 голосов
/ 02 мая 2011

Я написал свой собственный аккордеон Jquery, и у меня возникла проблема.

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

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

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

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

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

Роберт

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 ]

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

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

Вам придется либо

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

или

  • сохраните его в файле cookie и получите доступ к нему с новой страницы.
0 голосов
/ 02 мая 2011

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

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

...