首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Tabs .。。我要做所有的事!(MouseOver,从选项卡单击导航,并根据页面选择选项卡)

jQuery Tabs .。。我要做所有的事!(MouseOver,从选项卡单击导航,并根据页面选择选项卡)
EN

Stack Overflow用户
提问于 2010-01-06 13:50:15
回答 3查看 1.4K关注 0票数 2

在阅读了所有的jQuery文档、问题和随机博客之后,我一直找不到问题的答案。

目前,我正在将一个冷融合站点移植到一个.Net站点。在网站的主页中,我有我所有的导航元素,因为它只是网站的管理部分。

导航html代码:

代码语言:javascript
复制
<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>

在我的主页的头

代码语言:javascript
复制
<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页面和主页中抛出一个错误。

以上问题的解决方案:放置

代码语言:javascript
复制
<script type="text/javascript" >
$(document).ready(function(){
    var $tabs = $("#tabs").tabs({event: 'mouseover'});
    $tabs.tabs("select", 3);
  });
    </script>

在页的末尾,"3“允许默认选择适当的选项卡。

同时移除:

代码语言:javascript
复制
<script type="text/javascript" >
$(document).ready(function(){
    var $tabs = $("#tabs").tabs({event: 'mouseover'});
   });
    </script>

从母版页的标题中删除。

更重要的是,我需要单击选项卡才能导航(不是ajax加载,但我需要用户在单击该选项卡以转到另一个页面时)。我假设这类似于window.location()。

有人能帮下忙吗?我是jQuery n00b。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-06 18:17:56

对于第一部分,您可以执行karim79建议的操作,并尝试找出它是什么页面,并相应地设置默认值。

在设置选项卡之前:

代码语言:javascript
复制
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
}

然后你就可以:

代码语言:javascript
复制
 var $tabs = $("#tabs").tabs({event: 'mouseover'});
    $tabs.tabs("select", defaultTab);

现在对于第二个问题:如果我理解正确,您希望人们点击选项卡的名称并被重定向?这可以通过绑定单击事件来完成。您必须首先为导航中的每个A分配一个ID:

代码语言:javascript
复制
<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并决定将用户发送到何处:

代码语言:javascript
复制
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:

代码语言:javascript
复制
$('#tabs a').bind('click', redirect);

(不过,我没有测试这些:P)

票数 2
EN

Stack Overflow用户

发布于 2010-01-06 14:00:52

你试过:

代码语言:javascript
复制
  $(document).ready(function(){
    var $tabs = $("#tabs").tabs({event: 'mouseover'});
    $tabs.tabs("select", 3);
  });
票数 0
EN

Stack Overflow用户

发布于 2010-01-06 14:41:10

代码语言:javascript
复制
.tabcontainer:not(:target) { display: none; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2013342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档