页面加载后在上一节重新打开 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 . "&game_id=10&platform_id=3"; ?>">iPhone</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=10&platform_id=4"; ?>">iPad</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=10&platform_id=2"; ?>">Mac</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=10&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 . "&game_id=9&platform_id=3"; ?>">ios</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=9&platform_id=2"; ?>">Mac</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=9&platform_id=1"; ?>">PC</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=9&platform_id=6"; ?>">Nintendo DS</a></li>
<hr />
<li><a href="<?php echo $url . "&game_id=9&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的解决办法