在阅读了所有的jQuery文档、问题和随机博客之后,我一直找不到问题的答案。
目前,我正在将一个冷融合站点移植到一个.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>在我的主页的头中
<script type="text/javascript" >
$(document).ready(function(){
$("#tabs").tabs({event: 'mouseover'});
});
</script>如你所知,这个网站有4个主要部分:保险计划,小型网站,独立网站和工具。在每一节下都有几个页面(所有这些页面都使用相同的母版页)。
鼠标超过功能工作很好,div隐藏和显示如预期。我遇到的问题是,在每一页上都为每个部分选择了div id="fragment-1"。(例如,当在Tools部分,div id="fragment-4"中,我需要选择它。我尝试将$('#tabs').tabs('option', 'selected', 3);添加到.aspx页面的头和用于测试的主页中,我得到了一个错误。此外,我还尝试将$('#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。
发布于 2010-01-06 18:17:56
对于第一部分,您可以执行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);现在对于第二个问题:如果我理解正确,您希望人们点击选项卡的名称并被重定向?这可以通过绑定单击事件来完成。您必须首先为导航中的每个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)
发布于 2010-01-06 14:00:52
你试过:
$(document).ready(function(){
var $tabs = $("#tabs").tabs({event: 'mouseover'});
$tabs.tabs("select", 3);
});发布于 2010-01-06 14:41:10
.tabcontainer:not(:target) { display: none; }https://stackoverflow.com/questions/2013342
复制相似问题