Jquery Accordion可以激活带有锚标签/url哈希的特定面板


Jquery Accordion to activate specific panels with anchor tags/url hash

我遇到的问题与这里提出的问题几乎相同(链接打开jQuery Accordion?(,但无法正确实现答案。

我尝试过这个解决方案,但对我不起作用:

$("#accordion").accordion("activate", <?php echo $_GET['id']; ?>);

我有一个Jquery手风琴,代码如下:

<script type="text/javascript">
        $(function(){
            // Accordion
            $("#accordion").accordion({ 
                header: "h3", 
                autoHeight: false,
                navigation: true,
                collapsible: true,
                active: false
            });
            $(".exlnk").click(function(event){
      window.location.hash=this.hash;
 });    
        });

</script>
<script type="text/javascript">
function Click1(){  
$("#accordion").accordion('activate' , 0)
} 
function Click2(){  
$("#accordion").accordion('activate' , 1)
} 
</script>

简化HTML:

 <h3><a class="exlnk" href="#about" title="About">About</a></h3>
<div>content blah blah</div>
<h3><a class="exlnk" href="#about" title="About">About</a></h3>
<div>Blah blah</div>

上面的代码允许我在主页上有链接,可以激活指定的面板。

exlnk位在点击后为每个面板提供了一个散列,我在本教程中读到了这一点(http://www.michaeljacobdavis.com/tutorials/statesavingaccordion.html(将创建保存状态、可书本标记的面板。它分配散列,但不会激活面板,也不会在重新加载时保存面板以避免其关闭。

我想要的是能够从外部链接到http://www.mysite.com/page#anchor并打开相应的面板打开页面。我的工作可以从手风琴页面链接是唯一有用的!

非常感谢你的帮助。。。我读过每一个问答;这个网站上的A与Accordion脚本有关,无法使任何答案发挥作用。我对Jquery/Javascript非常陌生,所以解释实现的所有步骤以及将每个建议的代码放置在哪里的答案将非常棒。

您需要使用.activate()方法来绑定服务器端代码,该方法应允许您根据作为索引或选择器传递的内容动态显示面板:

以编程方式激活Accordion的内容部分。索引可以是零索引号,以匹配标头的位置close或与元素匹配的Selector。传递false以关闭所有(仅可能使用collapsible:true(。

示例:

如果可能,不要传递$_GET['id'],而是传递与要激活的元素匹配的选择器的名称。例如:

$("#accordion").accordion("activate", "#<?php echo $_GET['tab']; ?>");

$_GET['tab']将是您传递的选择器的名称。当然,如果选择器需要是一个类,只需将散列更改为句点即可。

如果你想根据一个链接激活一些东西,比如http://www.mysite.com/page#anchor当页面加载时,您需要使用javascript获取哈希,并使用该哈希(将是激活面板的选择器的名称(来代替$_GET['id']