我遇到的问题几乎完全相同(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非常新,所以解释所有实现步骤以及放置每个建议代码的位置的答案都很棒。
答案 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']