2010-02-19 77 views
3

我正在为导航建立一个手风琴。手风琴的每一部分都有一套链接。烧制代码如下所示:需要帮助jQuery UI手风琴navigationFilter选项

$(document).ready(function() { 
    $(".selector").accordion({ 
     collapsible: true, 
     active: false, 
     navigation: true 
    }); 
}); 

这一切都工作得很好,很正常,直到每一组的一个链接编辑为指向一个文件,把它foo.html。所以现在如果你导航到foo.html,location.href匹配手风琴的每个部分(因为每个部分都有一个链接),并打开所有部分,从而击败手风琴的目的。

所以我敢肯定,我需要使用navigationFilter选项,但我GOOGLE了人间地狱了出来,并没有发现如何建立与之相关的功能的例子。

帮帮我,堆栈溢出!

回答

6

这是一个古老的问题,但我今天在这个问题上挣扎,所以我想我会为任何正在寻找的人回答这个问题。

我想使用手风琴导航过滤器来匹配我的路线中的最后一项(使用ASP.NET-MVC2)。我想出了以下解决方案。它不漂亮,但它的工作原理。

我的链接如下所示: http://site.com/Home/Details/IDSTRING

的过滤器与IDSTRING结尾的任何location.href相匹配。

您可能需要将位置解析代码移动到另一个位置,以便每个页面加载只运行一次,而不是每个手风琴元素运行一次。

$("#accordion").accordion({ animated: false, autoHeight: false, collapsible: true, navigation: true, navigationFilter: function() { 
    //Accordion NavigationFilter 
    var locationHrefArray = location.href.split("/"); 
    var locationLastString = locationHrefArray[locationHrefArray.length - 1].toLowerCase(); 

    var sidebarHrefArray = this.href.split("/"); 
    var sideBarLastString = sidebarHrefArray[sidebarHrefArray.length - 1].toLowerCase(); 

    return locationLastString == sideBarLastString; 
} }); 
+0

这很好,但它不会导致我的手风琴打开。你如何做到这一点。我认为你把它连接到'积极'的方法,但如何? – Craig 2011-10-17 09:04:40