在页面加载后重新打开上一节的jQuery手风琴

时间:2011-05-02 17:52:12

标签: jquery html jquery-ui-accordion

我编写了自己的Jquery手风琴,我遇到了问题。

我需要在关注链接后再次打开当前部分。

当我点击链接时,某些数据库代码会获取正确的数据并显示它,但是由于页面已重新加载,之前打开的手风琴部分现已关闭。

是否有人建议使用'$ accordionPrev'值?我尝试访问此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 个答案:

答案 0 :(得分:2)

在页面重新加载之间,Javascript变量不会保留。

你必须要么

  • 将其传递到网址(并在再次加载网页时读取

  • 将其保存在Cookie中并从新页面访问它。

答案 1 :(得分:0)

您可以提交当前的折叠部分值,该值在您单击链接时打开,然后在您加载页面时从请求中读取(以js为单位)。 默认情况下(对于第一页加载),默认值可以表示您需要加载第一部分。

当您通过脚本手动打开特定部分时,可能需要手动操作css。