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

Posted

技术标签:

【中文标题】页面加载后在上一节重新打开 jQuery 手风琴【英文标题】:Re-open jQuery accordion on previous section after page loads 【发布时间】:2011-08-17 03:53:28 【问题描述】:

我编写了自己的 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" /><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" /><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>

【问题讨论】:

【参考方案1】:

javascript 变量不会在页面重新加载之间持续存在。

你必须要么

在url中传递(页面再次加载时读取

将其保存在 cookie 中,然后从新页面访问它。

【讨论】:

感谢您的快速回答,我会研究这些方法。 看来我已经在url中传递了我需要的值,我只需要使用jquery中的.eq()函数指示手风琴打开该部分。 @robertmegone,很高兴听到你整理好了!【参考方案2】:

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

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

【讨论】:

非常感谢您的回答,而不是提交我只是使用我之前写入 url 的值来打开正确的部分。

以上是关于页面加载后在上一节重新打开 jQuery 手风琴的主要内容,如果未能解决你的问题,请参考以下文章

关键词搜索&分页功能的前端代码(ajax + jQuery)

js 页面history.back()返回上一页,ios 不重新加载ready的解决办法

如何在 ipad 中使用 jquery 加载页面后在文本框中设置光标

返回上一页时,保存恢复浏览记录(模拟返回不刷新)

防止用户在 javascript 中离开我的页面

带有第一个 div 的 jQuery 自定义手风琴在初始加载时打开 - 修改箭头图像的问题