如何锚定访问手风琴项目

时间:2013-05-03 19:51:19

标签: javascript jquery jquery-plugins accordion

我对javascript知之甚少,所以这对我来说真的很难:(

我正在使用Tympanus手风琴,但无法弄清楚如何链接到某个项目并显示它已打开(使用锚点链接,例如页面/#3442)

这款手风琴非常简单易用,但没有其他例子,或者这可能是不可能的?!

我在链接中添加了ID,所以我希望我可以访问http://site.com/page#123并查看已打开的项目,有一个选项可以设置默认的已打开项目,open = "the index"我想我需要一个函数来抓取来自提交的网址的ID并将其传递给手风琴参数,但无法弄清楚:(:

$.Accordion.defaults        = {

    open            : -1, //index of opened item, -1 is none, 0 is the 1st item etc
    oneOpenedItem           : false,
    speed           : 600,
    easing          : 'easeInOutExpo',
    scrollSpeed     : 900,
    scrollEasing            : 'easeInOutExpo'
};

感谢您的帮助。

在Jsfiddle中设置:http://jsfiddle.net/uwn4P/

2 个答案:

答案 0 :(得分:1)

如果你正在寻找的话,

window.location.hash会从地址栏中获取哈希值。

所以你可以轻松地将它存储在一个变量中,就像这样:

var item;
if(window.location.hash) {
    item = window.location.hash;
} else {
    item=-1;
}

然后在你的电话中将项目传递给手风琴:

open            : item

我认为这很简单,但我不确定这是否真的是你想要的。

答案 1 :(得分:0)

我这样解决了:

        $(function() {
            if(window.location.hash) {
                var hash = window.location.hash;
                var newHashName = hash.replace("#","");
            } else {
                newHashName=-1;
            }

    $('#st-accordion').accordion({
    oneOpenedItem   : true,
            open: newHashName,
            });
        });

但请注意,第一个选项卡始终为0,脚本使用索引(从0开始),因此如果要使用特定ID(如名称或帖子ID),则必须自行修改脚本(我现在还不知道。)

这意味着,如果您有帖子,则必须在0元素上添加从<li>开始的计数,并且链接应为site.com/page/(第一个标签),{{1 }(第二个标签)等