php - Jquery Accordion 激活带有 anchor 标记/url 哈希的特定面板

标签 php javascript jquery hyperlink accordion

我遇到的问题与此处提出的问题(Link to open jQuery Accordion?)几乎相同,但无法正确实现答案。

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

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

我有一个带有以下代码的 Jquery Accordion :

<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并让它在打开相应面板的情况下打开页面。我的能够从 Accordion 页面链接的解决方法非常有用!

非常感谢您的帮助...我已经阅读了本网站上所有与 Accordion 脚本相关的问答,但无法做出任何答案。我对 Jquery/Javascript 非常陌生,所以解释所有实现步骤以及每个建议代码的放置位置的答案会很棒。

最佳答案

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

Activate a content part of the Accordion programmatically. The index can be a zero-indexed number to match the position of the header to close or a Selector matching an element. Pass false to close all (only possible with collapsible:true ).

示例:

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

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

$_GET['tab'] 将是您传递的选择器的名称。当然,如果selector需要是class,把hash改成句点就行。

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

关于php - Jquery Accordion 激活带有 anchor 标记/url 哈希的特定面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087525/

相关文章:

javascript - 正则表达式和字符串替换中难以捉摸的错误

javascript - ng-true-value ='0' 选取错误的值

php - MySQL表中的日期格式

php - 需要帮助向博客添加功能

php - 如何在没有数据库的情况下显示当前在线用户?或者至少非常有效。最好用 PHP

javascript - Jquery:TypeError: $(...)._TMS 不是函数

javascript - 如何添加类 onClick 和删除类

php soap 错误获取 http header

php - 当 iframe 中的表单和用户通过 gmail 传入时,为什么 form.submit() 在 IE9 中失败

javascript - 动态表单不起作用