【问题标题】:open accordion panel from external anchor link从外部锚链接打开手风琴面板
【发布时间】:2015-04-27 17:10:36
【问题描述】:

几周前问过这个问题,但一直没能找到解决方案 - 我是代码新手,所以我会尽力更具体。

我有一个带有手风琴的页面 - 它是作为网站主题附带的短代码内置的。我在外部页面中有链接,这些链接具有将您带到手风琴页面的锚标记 - 现在,当单击这些链接时,用户会被带到该术语但面板没有打开。我希望手风琴的面板也打开。照原样,当您到达该页面时,所有面板都已关闭。这是我到目前为止在单击带有锚点的链接时删除“关闭”类的代码:

var anchor = window.location.hash.substring(1);
$('.' + anchor).removeClass('su-spoiler-closed');

我无法让它工作,也许我没有把它放在正确的位置?也许 jquery 一般不能在页面上工作?

【问题讨论】:

  • 你可以在控制台检查jQuery是否不能正常工作。
  • 这听起来像是一个 wordpress 页面——我说的对吗?你为什么不去手风琴页面看看手风琴展开时的样子?这将使您了解手动打开它需要做什么。例如,删除“封闭”类可能会很好,您可能还需要添加一个“开放”类...根据我们在那里学到的知识,我们可以定制您的 jquery 代码来满足您的需求。
  • 你用什么来制作手风琴?
  • 您可以使用您喜欢的浏览器的开发者工具轻松检测您的问题。下面是chromefirefox的使用教程

标签: javascript jquery html


【解决方案1】:

你也可以使用 CSS,对我们新手来说更容易。

/*accordion ids' unhide*/
    #id:target{
        display:block;
    }
/* end css */

链接:www.website.com/page.htm#id

【讨论】:

    【解决方案2】:

    我想你的问题的答案在这里:jquery open accordion from link

    您只需要从当前 url 获取哈希内容并更改手风琴即可。

    【讨论】:

      【解决方案3】:

      假设 jQuerUI 的手风琴

      基本上,您希望在加载时侦听操作并使用 API 设置所需的元素。

      API:http://api.jqueryui.com/accordion/#option-active

      您必须对您的手风琴的父包装器进行分类(此处为 .parent),此选择器语法才能起作用:

      $(function(){
          var anchor = window.location.hash.substring(1);
      
          $('.parent a[href$="' + anchor+ '"]').ready(function() {
                var index = $(this).parent().children().index(this);
                $( ".parent" ).accordion( "option", "active", parseInt(index,10) );
          });
      });
      

      【讨论】:

        猜你喜欢
        • 2018-10-31
        • 1970-01-01
        • 2013-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-23
        • 2021-07-07
        • 1970-01-01
        相关资源
        最近更新 更多