来自链接的jquery open accordion

我究竟做错了什么。 手风琴有效,但是当我尝试从外部链接打开它时(fx.mysite.com/mypage.php#2) – 它不会打开手风琴!

我的标题是:

   $(document).ready(function() { $("#accordion").accordion({ active: false, collapsible: true, autoHeight: false, navigation: true, header: '.menuitem' }); $(".menuitem").click(function(event){ window.location.hash=this.hash; }); });  

我的HTML是:

  
Header 1
CONTENT 1
Header 2
CONTENT 2

这是工作代码 – Jsfiddle Link

     Untitled Document       
Header 1
CONTENT 1
Header 2
CONTENT 2

@Ashis你的代码只能完美地工作,每个DIV都有相同的大小,因此,当我有一个有2行的DIV时,下面会有很多空白区域。 当它包含大量信息时,DIV很好地填充。

 if ($.url().hash.length) { var item = $.url().hash; $('#accordion').accordion({active: item - 1}); // since you started numbering at 1 and not 0. } 

你可以做这样的事情,虽然不是一个完美的解决方案:

 $(document).ready(function() { var $hash = window.location.hash; var $acc = $hash ? $hash : 1; $("#accordion").accordion({ active: false, collapsible: true, autoHeight: false, navigation: true, header: '.menuitem', activate: $acc }); }); 

可能需要进行许多更改..

您的手风琴是页面中的动态元素(由一些JavaScript代码驱动)。

在你的url中设置一个html锚点(比如#2)不会触发accordeon代码,你只是指示浏览器导航到锚定元素!

您需要在页面中添加一些javascript代码以获取锚点的值,并将此参数传递给您的accordeon小部件。