javascript - 隐藏上一个 div 并在单击按钮时切换下一个 div?

标签 javascript jquery css html

我的 html 中有许多按钮。每个按钮都指向一个特定的 DIV。我想要一种简单的方法来在单击另一个按钮时隐藏先前打开的 DIV。到目前为止,我已经用 jquery 编写了代码,但我有一种奇怪的感觉,就是将大量代码放入一个简单可实现的任务中。有没有比我试图完成的更简单的方法来做到这一点?

这是我到目前为止所做的。

我的 HTML:

 <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>TODO supply a title</title>
            <meta name="viewport" content="width=device-width"/>   
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>                      
        </head>
        <body>
            <div id="body">
            <input type="button" name="division1" value="div1" class="buttons" id="button1"/>
            <input type="button" name="division2" value="div2" class="buttons" id="button2"/>
            <input type="button" name="division3" value="div3" class="buttons" id="button3"/>
            <input type="button" name="division4" value="div4" class="buttons" id="button4"/>
            <input type="button" name="division5" value="div5" class="buttons" id="button5"/>
            <input type="button" name="division6" value="div6" class="buttons" id="button6"/>
            <div id="div1" class="divs"></div>
            <div id="div2" class="divs"></div>
            <div id="div3" class="divs"></div>
            <div id="div4" class="divs"></div>
            <div id="div5" class="divs"></div>
            <div id="div6" class="divs"></div>
            </div>
        </body>
    </html>

我的 CSS:

            #body{
                position: absolute;
                left: 0;
                top: 0;
                width: 100%;
                height: 100%;    
                background-color: #000;
            }
            .buttons{
                width: 10%;
                height: 5%;
                position: relative;
                left: 10%;
                cursor: pointer;
                z-index: 500;
            }
            .divs{
                position: absolute;
                left: 0;
                top: 0;
                width: 100%;
                height: 100%;
                display: none;
            }
            #div1{
                background-color: #377D9F;
            }
            #div2{
                background-color: #02B0E6;
            }
            #div3{
                background-color: #4b9500;
            }
            #div4{
                background-color: #aaa;
            }
            #div5{
                background-color:#aa0000;
            }
            #div6{
                background-color: aquamarine;
            }
       

我的 Jquery:

        $(document).ready(function () {       
        $("#button1").click(function () {
              $('#div1').toggle(100);
                  $("#div2,#div3,#div4,#div5,#div6").hide();               
        });          
         $("#button2").click(function () {
            $("#div2").toggle(100);
            $("#div1,#div3,#div4,#div5,#div6").hide();    
        });
         $("#button3").click(function () {
            $("#div3").toggle(100);
            $("#div1,#div2,#div4,#div5,#div6").hide();    
        });
         $("#button4").click(function () {
            $("#div4").toggle(100);
            $("#div1,#div2,#div3,#div5,#div6").hide();    
        });
         $("#button5").click(function () {
            $("#div5").toggle(100);
            $("#div1,#div2,#div3,#div4,#div6").hide();    
        });
         $("#button6").click(function () {
            $("#div6").toggle(100);
            $("#div1,#div2,#div3,#div4,#div5").hide();    
        });
    });
  

我的 html 中大约有 50 个 DIV,就像上面的那样。而且我认为使用上面的 JQUERY 是在浪费代码行。我知道会有更好的方法来做到这一点。我的代码似乎运行良好,但是无论用户单击哪个按钮,jquery 中是否有任何方法可以隐藏以前的 DIV?

最佳答案

$(document).ready(function(){

$(".buttons").click(function () {
            var divname= this.value;
              $("#"+divname).slideToggle().siblings('.divs').hide("slow");
            });
 });

关于javascript - 隐藏上一个 div 并在单击按钮时切换下一个 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20833573/

相关文章:

javascript - 在javascript中分离出数组

javascript - SQL 事务和 JavaScript Promises 有什么关系?

javascript - 将嵌套层次结构添加到 tel : link 的末尾

html - CSS3 Border-radius 创建一个蛋形

javascript - 如何在鼠标指针处打开 Kendo 窗口

javascript - 如何将元素的位置设置在固定位置元素下方 5px

javascript - jQuery 显示/隐藏仅适用于第一个选择器

javascript - 在 OpenLayers 中拥有多边形的 removeLastPoint() 函数

html - 如何在不从图标下方开始的情况下将文本在其下方直线对齐?

html - 如何停止我的动画