繁体   English   中英

使用 Jquery 使用 1 个按钮一次切换多个 div

[英]Toggle multiple divs one at a time with 1 button using Jquery

我有四个 div,我想用一个按钮一次切换一个。 我想一个接一个地切换它们,而不是随机切换。 我尝试过类似下面的方法。

 $(document).ready(function() { $('#toggle').click(function() { $('#1').hide(); }); $('#toggle').click(function() { $('#2').hide(); }); $('#toggle').click(function() { $('#3').hide(); }); $('#toggle').click(function() { $('#4').hide(); }); });
 .divs { border: 1px solid; height: 30px; }
 <div id='1' class='divs'></div> <div id='2' class='divs'></div> <div id='3' class='divs'></div> <div id='4' class='divs'></div> <button id='toggle'> toggle </button>

保存每次点击的状态。

$(document).ready(function() {

  var state = 1;
  $('#toggle').click(function() {

    if(state==1){
       $('#1').hide();
       state=2;
    } 
    else if(state==2){
       $('#2').hide();
       state=3;
    }
    else if(state==3){
       $('#3').hide();
       state=4;
    }
    else if(state==4){
       $('#4').hide();
       state=1; //back to state
    }
  });
  $(document).ready(function() {
  $('#toggle').click(function() {
    $('.divs:visible:first').hide();
  });
});

试试这个

var count = 1;
$(document).ready(function () {
    $('#toggle').click(function(){
        $('.divs').show();
        if(count == 4)
            count = 1;
        $('#' + count).hide();
        count++;
    });
});

首先,保留数字 id 并不好,所以考虑到您以后会更改它们,我正在写带有数字 id 和没有数字 id 的答案。

使用数字 ID,很容易做到

假设您有按钮来切换其他四个 div,那么它看起来像这样:

 var state = 1; $("#toggleButton").click(function(){ $("#"+state++).slideToggle(); if(state===5){state=1;} });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <div id='1' >1</div> <div id='2' >2</div> <div id='3' >3</div> <div id='4' >4</div> <button id="toggleButton"> toggle </button>

现在来到非数字ID。

 var state = 1; $("#toggleButton").click(function(){ $("#div"+state++).slideToggle(); if(state===5){state=1;} });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <div id='div1' >1</div> <div id='div2' >2</div> <div id='div3' >3</div> <div id='div4' >4</div> <button id="toggleButton"> toggle </button>

仅供参考:在我看来,您不应该使用数字 ID。


进一步在代码中添加更多内容。

如果您不知道会有多少个 div,但您有一个明确的规则,即 div遵循序列,无论它们是否具有数字/非数字 id ,那么您可以稍微更改代码以合并它这个。

 var state = 1;//first button id to be toggled var total = 4;//this will be the total number of divs to be handled by the button $("#toggleButton").click(function(){ $("#"+state++).slideToggle(); if(state===(total+1)){state=1;} });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <div id='1' >1</div> <div id='2' >2</div> <div id='3' >3</div> <div id='4' >4</div> <button id="toggleButton"> toggle </button>

快乐编码。

使用类而不是 Id 多次使用

 var i = 1; $('#toggle').click(function(){ $('.divs').show(); $('#' + i).hide(); i++; });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id='1' class='divs'>dsgsdg</div> <div id='2' class='divs'>64636</div> <div id='3' class='divs'>46y</div> <div id='4' class='divs'>4373477</div> <button id='toggle'> toggle </button>

循环遍历每个元素并使用切换。 这会产生您想要的效果。

$('button').click(function(){
  $('.divs').filter(function(index,item){
  $(item).toggle('slow')
 })
})

看看这个演示 - https://jsfiddle.net/ukw5wcmt/

  var i = 1;
    $('#toggle').click(function(){
      $('.divs').show();
      $('#' +  i).hide();
      if(i==4)
        {
        i=1;
        }else{
        i++;
       }
    });

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id='1' class='divs'>dsgsdg</div>
    <div id='2' class='divs'>64636</div>
    <div id='3' class='divs'>46y</div>
    <div id='4' class='divs'>4373477</div>

    <button id='toggle'>
      toggle
    </button>

尝试这个

 .hide{ display: none; } 

  $(document).ready(function(){
         $(".click-btn").click(function(){
          var fid = $(".hide:first").prop("id");
           $("#"+fid).removeClass("hide");  
        });
        
        $(".remove-tag").click(function(){
          $(this).parent().addClass("hide");
        });
    });

    <div id="cart-1" class="hide">
        <div class="remove-tag">x</div>
        <h5>1</h5>  
    </div>
    
    <div id="cart-2" class="hide">
        <div class="remove-tag">x</div>
        <h5>2</h5>  
    </div>
    
    <div id="cart-3" class="hide">
        <div class="remove-tag">x</div>
        <h5>3</h5>  
    </div>
    
    <div id="cart-4" class="hide">
        <div class="remove-tag">x</div>
        <h5>4</h5>  
    </div>
    
    <div id="cart-5" class="hide">
        <div class="remove-tag">x</div>
        <h5>5</h5>  
    </div>
        
    <button class="click-btn">click</button>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM