我正在使用jquery tabify http://unwrongest.com/projects/tabify/为我的菜单创建一个类似标签的功能。
演示:http://jsfiddle.net/janjarfalk/6Y6Pa/1/
我正在创建一个这样的菜单:
<ul id="menu">
<li class="active"><a href="#contentHome">Home</a></li>
<li><a href="#contentGuestbook">Guestbook</a></li>
<li><a href="#contentLinks">Links</a></li>
</ul>
<div class="content" id="contentHome">Content for Home</div>
<div class="content" id="contentGuestbook">My guestbook</div>
<div class="content" id="contentLinks">Links</div>
标签将自动添加为我的网址的锚链接,读取我网址上的内容。我需要一个网址(仅限链接标签),例如 {domain name} / {controller} / {method} / {articleId} #contentLinks-tab ,示例:
其余部分只有http://www.test.com/site#home-tab等。正如您从演示中看到的那样,&#34; {id} -tab&#34;是基于id自动生成的。但是,如果我已经在链接页面的http://www.test.com/links/shipping/5/#contentLinks-tab上,并且如果我要访问其他标签(如留言板或主页),则会出现问题,/ shipping / 5 / #contentHome-tab将会跟随。
请告知我如何删除/ shipping / 5 /甚至当我在链接标签上,并将鼠标悬停在选项卡的其余部分时?抱歉,我无法提供太多编码,因为我不知道这样做。因此,真的很感激有人可以发光。非常感谢。
答案 0 :(得分:0)
这是一个很难回答的问题,因为jsFiddle明显缺少URL的/shipping/5
部分;如果理解正确,我们基本上都在尝试更改插件的功能。
无论如何,它有点hacky,但您可以尝试使用javascript更改Home和Guestbook链接的href
属性。首先给出Home和Guestbook链接ID:
<a href="#contentHome" id="home">Home</a>
<a href="#contentGuestbook" id="guestbook">Guestbook</a>
然后在Tabify初始化后使用jQuery替换URL:
$('#menu').tabify();
$('#home').attr('href','/site#contentHome-tab');
$('#guestbook').attr('href','/site#contentGuestbook-tab');
这等同于http://www.test.com/site#contentHome-tab
等,有效地消除了网址中不受欢迎的部分。
或者,如果这不起作用(在jsFiddle上使用这样的插件很难说),你可能会变得更加hacky,而是将onclick监听器添加到Home和Guestbook选项卡中:
$('#home').click(function() {
window.location.href = "/site#contentHome-tab";
});
我通常永远不会做这样的事情,但是当你使用插件时,你有时候会得到一些hacky来达到预期的效果= P
希望这有帮助。