【问题标题】:Link to anchor and open accordion链接到锚点并打开手风琴
【发布时间】:2018-03-08 10:22:18
【问题描述】:

如何使用外部锚链接打开手风琴面板?

我尝试使用锚链接,它只是加载页面,而不打开面板。

我想要实现的是,当点击锚链接时,页面加载,滚动到面板,然后打开手风琴。

此链接将锚定到另一页并应打开手风琴:

 <a class="linkTo" href="/project#<?php the_sub_field('area_link'); ?>">

这是我用来在点击时打开手风琴的代码:

 $(document).ready(function() {
   $(".accordion .accord-header").click(function() {
     // for active header definition
     $('.accord-header').removeClass('on');
     $(this).addClass('on');

     // accordion actions
     if($(this).next("div").is(":visible")){
       $(this).next("div").slideUp(600);
       $(this).removeClass('on');
     } else {
       $(".accordion .accord-content").slideUp(600);
       $(this).next("div").slideToggle(600);
     }
  });
});

这是手风琴结构:

<div class="accordion">
  <div class="accord-header" id="<?php the_sub_field('area_link'); ?>">Accordion 1</div>
    <div class="accord-content">
        <!-- Content -->
    </div>
  </div>
</div>

【问题讨论】:

标签: javascript jquery html accordion


【解决方案1】:

您可以在准备好初始化手风琴的文档上使用window.location.hash

$(function () {
    var $accordionSecion = $(window.location.hash);
    if ($accordionSecion.length) {
       $(window).scrollTop($accordionSecion.offset().top);
       $accordionSecion.addClass('on');
    }
});

您可能可以使用与onhashschange 侦听器相同的处理程序来处理手风琴标题的点击。

祝你好运。 :)

【讨论】:

  • 作为示例,我在原始答案中添加了一些代码。
【解决方案2】:
$(document).ready(function(){
 var hash = window.location.hash;
 if (hash) {
   var element = $(hash);
   if (element.length) {
   element.trigger('click');
 }
 }
});

在您要打开手风琴的页面上尝试上述代码。

【讨论】:

  • 只需将此代码放在手风琴所在的同一文件中即可。确保您附加到 url 的哈希值与手风琴的 ID 相同,它应该可以正常工作。如果您需要任何其他帮助,请告诉我。
猜你喜欢
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多