需要帮助jQuery UI Accordion navigationFilter选项

the*_*BRU 3 jquery jquery-ui

我正在建造一个导航手风琴.手风琴的每个部分都有一组链接.触发代码如下所示:

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

这一切都运行良好和花花公子,直到每组中的一个链接被编辑为指向单个文件,称之为foo.html.所以现在如果您导航到foo.html,location.href会匹配手风琴的每个部分(因为每个部分都有一个链接)并打开所有部分,从而破坏了手风琴的目的.

所以我很确定我需要使用该navigationFilter选项,但我已经搜索了它的生活地狱,并没有找到任何关于如何构建与之相关的功能的示例.

帮助我,Stack Overflow!

jsl*_*tts 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;
} });
Run Code Online (Sandbox Code Playgroud)