代码之家  ›  专栏  ›  技术社区  ›  Codex73

简单选项卡Javascript部分(不是菜单)

  •  0
  • Codex73  · 技术社区  · 14 年前

    这可能是当今最简单的问题。

    我正在寻找一个基于社区中所有知识的最佳答案,不是一个基本的标签效果,而是一个可以扩展、易于实现和符合标准的效果。

    用Javascript实现不同部分的一种简单(兼容)的好方法。我个人更喜欢jQuery、Mootools或纯Javascript。

    当单击每个链接时,它应该打开related table row或div,而不是一个悬停菜单。在左侧选择选项后,节必须保持打开状态。

    任何有关资源或方向的帮助都将不胜感激。

    表单将有一个带有所有选定选项的公共提交按钮。

    alt text

    3 回复  |  直到 4 年前
        1
  •  1
  •   Oskar Krawczyk    14 年前

    或者可以使用预先存在的插件: http://jsfiddle.net/oskar/VELCe/

        2
  •  1
  •   Paul    13 年前

    这是没有jQuery或其他插件的最简单的tab代码。

    在脚本标记下添加此函数

    <script type="text/javascript">
        function showTab(tabNumber) {
          var tabIDs = ["tab1", "tab2"];
          var tabButtonIDs = ["tabButton1", "tabButton2"];
          for (var i = 0; i < tabIDs.length; i++) {
            document.getElementById(tabIDs[i]).style.display = (tabNumber == i ? 'block' : 'none');
            document.getElementById(tabButtonIDs[i]).className = (tabNumber == i ? "active" : "");
          }
        }
    </script>
    

    将这些样式添加到css中

            <style type="text/css">
                #tabContainer 
                {
                    list-style: none;
                    margin: 0 0 5px 0;
                    padding: 0;
                    clear: both;
                    border-bottom: 1px solid #CCC;
                    height: 20px;
                    clear: both;
                }
                #tabContainer li
                {
                    float:left;
                    margin-right: 7px;
                    text-align: center;         
                }
                #tabContainer li a
                {
                    background-color:transparent;
                    display: block;
                    height: 20px;
                    padding: 0 6px 0 6px;
                    background-color: white;
                    color: #666;
                    width: 80px;
                    text-decoration: none;
                    font-weight: bold;
                }
                .active
                {
                    background-color: #DDD !important;
                }
            </style>
    

    添加选项卡按钮

        <ul id="tabContainer">
            <li><a class="active" id="tabButton1" onclick="showTab(0)" href="javascript:void(0);">Option 1</a></li>
            <li><a id="tabButton2" onclick="showTab(1)" href="javascript:void(0);">Option 2</a></li>
        </ul>
    

    添加选项卡内容

    <div id="tab1">Content 1</div>
    <div id="tab2" style="display:none;">Content 2</div>