【问题标题】:Link to specific accordion section from another page从另一个页面链接到特定的手风琴部分
【发布时间】:2014-11-04 13:13:02
【问题描述】:

我已将 jquery UI 手风琴添加到我的网站,它运行良好。但是,我希望其他页面链接到该手风琴中的某些部分。因此,例如,我需要 data-cleansing.php 链接到 data.php 页面上手风琴的第 3 部分

这是jquery手风琴的基本js

<script>
  $(function() {
    $( "#accordion" ).accordion();
  });
  </script>

和html

<div id="accordion">
  <h3>Section 1</h3>
  <div>
    <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget.
    Integer ut neque. Vivamus nisi metus, molestie vel, gravida in,
    condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros.
    Nam mi. Proin viverra leo ut odio.</p>
  </div>
  <h3>Section 2</h3>
  <div>
    <p>Sed non urna. Phasellus eu ligula. Vestibulum sit amet purus.
    Vivamus hendrerit, dolor aliquet laoreet, mauris turpis velit,
    faucibus interdum tellus libero ac justo.</p>
  </div>
  <h3>Section 3</h3>
  <div>
    <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus.
    Quisque lobortis.Phasellus pellentesque purus in massa.</p>
    <ul>
      <li>List item one</li>
      <li>List item two</li>
      <li>List item three</li>
    </ul>
  </div>
</div>

我通过查看此处发布的问题发现了这一点,但它不起作用,因为我从另一个页面链接到该部分。我尝试在相关的“打开部分”中添加 url,但没有链接到该页面:

http://jsfiddle.net/VZ3T5/5/

还有How to link to specific accordion section from different page?

所以我尝试了:

$( "#accordion" ).accordion(option", "active", 0);

这打破了手风琴。

如果有人能提供任何启示,将不胜感激,

谢谢 雷切尔

【问题讨论】:

  • 看起来您在 "option" 处漏掉了一个左引号:$( "#accordion" ).accordion(option", "active", 0);
  • 谢谢巨魔。我刚刚尝试过,它使每个部分都打开了。
  • 好吧,在回答您的实际问题时,我相信您会在服务器端进行操作。您还可以使用 localstorage 设置一个跨页面加载持续存在的变量。或者按照 sebzzz 的建议做 :)。

标签: jquery accordion


【解决方案1】:

你可以使用

$(document).ready(function(){
    $( "#accordion" ).accordion("option", "active", [your data panel id here]);
});

【讨论】:

  • 感谢 Sebbzzz - 但是您如何定义从哪个页面打开哪个部分?
  • 试试这个:$(document).ready(function(){ var $accordion = $("#accordion"); var panelId = location.hash.replace("#", "") ; $accordion.accordion({ active: panelId }); });并通过example.com#2访问页面
  • 例如,我需要从不同的页面链接到手风琴中的几个部分。
  • 编辑:"location.hash.replace("#", "");"到:“intParse(location.hash.replace("#", ""));"它会工作:)
  • 天哪,对不起 - 它应该是 parseInt。并确保像这样大写它:)
猜你喜欢
  • 2012-02-08
  • 2012-08-14
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 2018-10-31
相关资源
最近更新 更多