Jquery Accordion用锚标签/ url哈希激活特定面板

时间:2011-11-10 22:54:12

标签: php javascript jquery hyperlink accordion

我遇到的问题几乎完全相同(Link to open 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并让它打开页面并打开相应的面板。我可以通过手风琴页面进行链接,这非常有用!

非常感谢您的帮助......我已阅读本网站上与手风琴脚本相关的所有问答,但未能使任何答案有效。我对Jquery / Javascript非常新,所以解释所有实现步骤以及放置每个建议代码的位置的答案都很棒。

1 个答案:

答案 0 :(得分:1)

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

  

以编程方式激活Accordion的内容部分。该指数   可以是零索引数字,以匹配标题的位置   close或与元素匹配的选择器。通过false关闭所有(仅限   可以使用collapsible:true)。

示例:

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

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

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

如果您希望根据http://www.mysite.com/page#anchor这样的链接激活某些内容,那么当您的网页加载并使用该哈希(这将是将激活的选择器的名称)时,您将希望使用javascript获取哈希值你的小组)代替$_GET['id']