我对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/
答案 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 }(第二个标签)等