【问题标题】:Toggle between two div tags using javascript使用 javascript 在两个 div 标签之间切换
【发布时间】:2017-03-20 03:17:32
【问题描述】:

我在两个 div 之间使用 JQuery 切换时遇到了问题。我对 JQuery 了解不多。 我想在单击创建时显示 div1(create) 并且应该隐藏 div2(insert)。同样,当我单击插入时,它应该显示 div2(insert) 并隐藏 div1(create)。有人可以帮我解决这个问题吗?

这是锚标记的代码 #div标签1的开始

 <div id="first"><h2 align="center">Array Operations</h2><br><br><br>
                   <a href="create">Creation</a><br>
                   <a href="insert">Insertion</a><br>
 </div> #End of div1

这是 div 标签的代码

<div id="second"> #Start of div tag2
 <div class="create">
  <ul class="nav nav-tabs" id="myTab">
    <li class="active"><a href="#cpp">C++</a></li>
  </ul>
 <div class="tab-content">
    <div id="cpp" class="tab-pane fade in active">
        <h3>#Creating an array in C++</h3>
    <p>#include &lt; iostream &gt; <br>
    using namespace std;<br>
    int a [10]</p>
    </div>
 </div>
</div> #End of create div
<div class="insert">
   <ul class="nav nav-tabs" id="myTab">
     <li class="active"><a href="#cpp">C++</a></li>
   </ul>
  <div class="tab-content">
    <div id="cpp" class="tab-pane fade in active">
      <h3>#Inserting an array in C++</h3>
      <p>#include &lt; iostream &gt; <br>
      using namespace std;<br>
      int a [10]</p>
    </div>
  </div>
</div> #End of insert div
</div> #End of div tag2

这是第一个 div 标签的 css

<script type="text/javascript">
  $(document).ready(function(){ 
    $("#myTab a").click(function(e){
     e.preventDefault();
     $(this).tab('show');
  });
});
</script>   
<style>
#first {
width: 25%;
float: left;
height: 300px;
border-left: 1px solid gray;
border-top: 1px solid gray;
border-right: 1px solid gray;
}
#second {
width: 70%;
float: left;
height: 300px;
border-top: 1px solid gray;
}
</style>

这是jquery

$('.insert').hide();
 $('.create, .insert').on('click',
  function() {
  $('.create, .insert').toggle()
 }
);

【问题讨论】:

  • 你的 CSS 在哪里,你尝试过什么 js/jquery?

标签: javascript jquery html css


【解决方案1】:

我为所有页面部分添加了一个名为 .panel 的类,默认情况下隐藏面板 (display: none;),并为第一个面板提供了一个 .active 类,它将显示一个面板。然后,当您单击顶部的链接之一时,使用href 属性定位面板的类,从您未单击的任何面板中删除.active,并将.active 添加到您点击了。

var $panels = $('.panel'),
    $links = $('#first a');
$links.on('click',function(e) {
  e.preventDefault();
  var $target = $('.' + $(this).attr('href'));
  $panels.not($target).removeClass('active');
  $target.addClass('active');
})
.panel {
  display: none;
}
.active {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="first">
  <h2 align="center">Array Operations</h2><br><br><br>
  <a href="create">Creation</a><br>
  <a href="insert">Insertion</a><br>
</div>
<div class="create panel active">
  <ul class="nav nav-tabs" id="myTab">
    <li class="active"><a href="#cpp">C++</a></li>
  </ul>
  <div class="tab-content">
    <div id="cpp" class="tab-pane fade in active">
      <h3>#Creating an array in C++</h3>
      <p>#include &lt; iostream &gt; <br> using namespace std;<br> int a [10]</p>
    </div>
  </div>
</div>
<div class="insert panel">
  <ul class="nav nav-tabs" id="myTab">
    <li class="active"><a href="#cpp">C++</a></li>
  </ul>
  <div class="tab-content">
    <div id="cpp" class="tab-pane fade in active">
      <h3>#Inserting an array in C++</h3>
      <p>#include &lt; iostream &gt; <br> using namespace std;<br> int a [10]</p>
    </div>
  </div>
</div>

【讨论】:

  • 这是有效的,但是当我试图添加一个按钮时
  • C++
  • java
  • 它不允许我以前的功能为选项卡中的不同按钮显示不同的信息 $(document).ready(function(){ $(" #myTab a").click(function(e){ e.preventDefault(); $(this).tab('show'); }); });请帮我解决这个问题!
  • @toni 代码不完整。你在哪里初始化$.tabs()?而$.tab() 是错误的,假设这是 jqueryUI。这是$.tabs()
  • 你能帮我用jquery吗?我想要
  • 标记中有两个按钮(c++ 和 java)。当我使用 C++ 时,它应该显示 #cpp 的信息,当我点击 java 时,它应该显示 #java 的信息。
  • @toni 如果您还没有集成 jqueryUI 选项卡,那是与您帖子中的问题不同的问题。
  • 【解决方案2】:

    这是一些使用简单 jQuery 语法来显示/隐藏您提到的 div 的代码。你可以在这里测试代码 --> https://jsfiddle.net/Lp8m2mry/

    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script type="text/javascript">
            $(function(){    <!--jQuery function that fires when document is ready-->
                $('a#create').click(function() {    <!--jQuery function creates a click even listener on the a tag with id of create-->
                    $('div.create').show();    <!--jQuery function that applies the default display property to element-->
                    $('div.insert').hide();    <!--jQuery function that applies style of display:none to element -->
                });
                $('a#insert').click(function() {
                    $('div.insert').show();
                    $('div.create').hide();
                });
            });
        </script>
        <style>
            div.create {
                display: none;
            }
    
            div.insert {
                display: none;
            }
        </style>
    </head>
    <body>
        <div id="first"><h2 align="center">Array Operations</h2><br><br><br>
            <a id="create" href="#">Creation</a><br>
            <a id="insert" href="#">Insertion</a><br>
        </div>
        <div class="create">
            <ul class="nav nav-tabs" id="myTab">
                <li class="active"><a href="#cpp">C++</a></li>
            </ul>
            <div class="tab-content">
                <div id="cpp" class="tab-pane fade in active">
                    <h3>#Creating an array in C++</h3>
                    <p>#include &lt; iostream &gt; <br>
                    using namespace std;<br>
                    int a [10]</p>
                </div>
            </div>
        </div> 
        <!--#End of create div-->
        <div class="insert">
            <ul class="nav nav-tabs" id="myTab">
                <li class="active"><a href="#cpp">C++</a></li>
            </ul>
            <div class="tab-content">
                <div id="cpp" class="tab-pane fade in active">
                    <h3>#Inserting an array in C++</h3>
                    <p>#include &lt; iostream &gt; <br>
                    using namespace std;<br>
                    int a [10]</p>
                </div>
            </div>
        </div>
        <!--#End of insert div-->
    </body>
    

    【讨论】:

    • 太棒了。很高兴听见。如果您不介意,请为答案投票。保重!
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签