在阅读了所有jQuery doc,SO问题和随机博客后,我一直无法找到问题的答案。
目前我正在将Coldfusion网站移植到.Net网站。在我的网站母版页中,我拥有所有导航元素,因为它只是网站的管理部分。
导航html代码:
<div id="tabs" class="basictab">
<ul>
<li><a href="#fragment-1"><span>Insurance Plans</span></a></li>
<li><a href="#fragment-2"><span>Mini-Sites</span></a></li>
<li><a href="#fragment-3"><span>Independent Sites</span></a></li>
<li><a href="#fragment-4"><span>Tools</span></a></li>
</ul>
<div id="fragment-1" class="tabcontainer">
<nav:insurance runat="server" ID="ins1" Visible="true" />
</div>
<div id="fragment-2" class="tabcontainer">
<nav:mini runat="server" ID="mini1" Visible="true" />
</div>
<div id="fragment-3" class="tabcontainer">
<div>
<div id="fragment-4" class="tabcontainer">
<nav:tools runat="server" ID="tools2" Visible="true" />
</div>
</div>
在我的标题 OF MY MASTER PAGE :
<script type="text/javascript" >
$(document).ready(function(){
$("#tabs").tabs({event: 'mouseover'});
});
</script>
您可以告诉该网站有4个(实际上是3个)主要部分:保险计划,迷你网站,独立网站和工具。在这些部分中的每一部分下都有几个页面(所有页面都使用相同的母版页)。
鼠标悬停功能效果很好,div隐藏并按预期显示。我遇到的问题是每个部分的每个页面都选择div id="fragment-1"
。 (例如,在工具部分div id="fragment-4"
中,我需要选择它。我已经尝试在.aspx页面的头部和主页中添加$('#tabs').tabs('option', 'selected', 3);
以进行测试另外我尝试将$('#tabs').tabs('option', 'selected', 3);
抛入$(document).ready函数,但它仍会在.aspx页面和母版页中引发错误。
解决上述问题: 放置
<script type="text/javascript" >
$(document).ready(function(){
var $tabs = $("#tabs").tabs({event: 'mouseover'});
$tabs.tabs("select", 3);
});
</script>
在“3”部分的页面末尾允许默认选择相应的选项卡。
删除时:
<script type="text/javascript" >
$(document).ready(function(){
var $tabs = $("#tabs").tabs({event: 'mouseover'});
});
</script>
来自母版页的标题。
最重要的是,我需要可点击的标签进行导航(不是ajax加载,但我需要用户,当点击标签进入不同的页面时。我会认为这将是类似于window.location()。
任何人都可以帮助第二部分吗?我是一个jQuery n00b。
答案 0 :(得分:2)
对于第一部分,您可以执行karim79建议的操作,并尝试确定它是什么页面并相应地设置默认值。
在设置选项卡之前:
var path = window.location.pathname.split('/'); // This will give you an
// array of the parts of the url
var defaultTab; // Initialize the default tab variable
// Just as an example, let's imagine your urls look like this:
// administration/mini-site
switch ( path[1] ) // Path[0] is 'administration' in this example
{
case 'mini-site':
defaultTab = 1; // The number to pass as the default
break;
case 'insurance-plans':
defaultTab = 5;
break;
// etc. etc. etc.
// A case for each individual page
}
然后你可以这样做:
var $tabs = $("#tabs").tabs({event: 'mouseover'});
$tabs.tabs("select", defaultTab);
现在针对第二个问题: 如果我理解正确,您希望人们点击选项卡的名称并重定向? 这可以通过绑定click事件来完成。 您必须先为导航中的每个A分配一个ID:
<li><a href="#fragment-1" id="insurance"><span>Insurance Plans</span></a></li>
<li><a href="#fragment-2" id="minisites"><span>Mini-Sites</span></a></li>
然后创建一个将获取该ID并决定将用户发送到何处的函数:
function redirect(e)
{
var id = $(this).attr('id');
switch (id)
{
case 'minisites':
window.location = 'http://www.something.com/administration/mini-sites';
break;
case 'insurance':
window.location = 'http://www.something.com/administration/insurance';
break;
//etc etc etc
}
}
然后将其绑定到a:
$('#tabs a').bind('click', redirect);
(虽然我没有测试任何一个:P)
答案 1 :(得分:0)
你试过了吗?
$(document).ready(function(){
var $tabs = $("#tabs").tabs({event: 'mouseover'});
$tabs.tabs("select", 3);
});
答案 2 :(得分:0)
.tabcontainer:not(:target) { display: none; }