链接到打开jQuery Accordion

我正试图从外部链接打开手风琴div。 我看到“navigation:true”选项,但我不确定如何实现它。 你给每个div一个id并调用这样的链接? http://domain.com/link#anchorid

我是jQuery的新手所以请耐心等待。 这是我正在使用的代码,如果它有帮助。

 $(function(){ $("#accordion").accordion({ header: "h2", autoHeight: false, animated: false, navigation: true }); });  

Services

More information about all of these services

导航选项不适用于面板激活。 这是为了告诉用户他们在哪里。

使用简化的html代码:

 

Services

More information about all of these services

About

About us

您将唯一ID放在标题中的超链接中

然后jQuery(简化):

  

“navigation:true”将使您可以访问www.site.com/#about,从而选择“关于”面板。 对于激活,有两种方法。 也许一种方法是获取查询字符串并将其放入jQuery中。

用C#

 $("#accordion").accordion("activate", '<%= Request.QueryString["id"] %>'); 

用PHP

 $("#accordion").accordion("activate", ''); 

这将允许您指定由www.site.com?id=2打开哪个面板

许多这些答案所引用的navigation选项在jQuery UI 1.9中已弃用 ,在1.10中已删除 。 给出的理由是:

默认情况下禁用此function,这只是您可能想要确定在初始化时激活哪个面板的众多方法之一。 因此,我们不赞成仅仅处理手风琴之外的逻辑并适当地设置有效选项。

因此,使用较新版本的jQuery UI的编码人员需要编写自己的代码来处理此function。

对于我的网站,我在标记之前使用JavaScript switch语句完成了此操作。 (我不是一个经验丰富的编码员,所以其他人应该随意改进这个答案。)

  

这是相应的HTML:

 

Preschool

Preschool content

Kindergarten

Kindergarten content

1st Grade

First grade content

哈,破解它。

使用php get方法。 但是上面的一个错误。 $(“#accordion”)。accordion(“activate”,”);

php代码需要删除引号。

现在就开始享受吧。

干杯

伊恩

使用服务器端语言,检查该#anchor的查询并使用它来填写激活语句。

从我正在研究的东西中提取:

 $("#search_forms").accordion("activate", "{$this->open_form}"); 

编辑:

我无法直接链接到手风琴方法blurb,但这会让你接近:

http://docs.jquery.com/UI/Accordion#methods

这对我有用……

 var hash = window.location.hash; $("#accordion").accordion("activate", hash); 

这对我有用。

  

和HTML …

 
More data....
 $("a").click(function(event){ var hash = window.location.hash; $("#accordion").accordion("activate", hash); }); 

这适用于jquery 1.8.3和jqueryui 1.9.1,但似乎不适用于jqueryui 1.10.0

不知道为什么……