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

如何在CSS更改之间切换

  •  1
  • Ari  · 技术社区  · 6 年前

    如何在jquery中编写,使css属性在Display:None和Display:Block之间切换?

    $('#help_btn').click(function(){
        $('#help_box').css('display', 'none');
    });
    

    $('#help_box').css('display', 'block');
    

    以此类推。谢谢!

    我的css看起来像这样

    #help_box {
        display: block;
    }
    

    我的html是

    <div id='help_box><p> Some helpful info!</p></div>
    <button id='help_btn>help?</button>
    
    5 回复  |  直到 6 年前
        1
  •  1
  •   zerosand1s    6 年前

    $('#help_btn').click(function() {
        if($('#help_box').is(':visible')) {
            $('#help_box').css('display', 'none');
        } else {
            $('#help_box').css('display', 'inline');
        }
    });
    
        2
  •  1
  •   scraaappy    6 年前

    使用 toggleClass(); toggle();

    $('#help_btn').click(function(){
        $('#help_box').toggle();
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    
    
    <div id="help_box"><p> Some helpful info!</p></div>
    <button id="help_btn">help?</button>
    请注意,您的html代码中有输入错误,您必须正确地对元素的id加上双引号。
        3
  •  0
  •   aloisdg    6 年前

    你可以用 toggleClass() 切换两个类。

    ToggleClass逻辑是添加缺少的类并删除上一个类。

    $('#help_btn').click(function(){
        $('#help_box').toggleClass("hidden shown");
    });
    .shown { display: inline; }
    .hidden { display: none; }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    
      <button id="help_btn">Change</button>
    
      <div id="help_box"><p> Some helpful info!</p></div>
        4
  •  0
  •   Void Spirit    6 年前

    .someclass{ display: inline}

    然后切换类

    $('#help_btn').click(function(){
         $('#help_box').toggleClass("someClass");   
    });
    
        5
  •  0
  •   Abdullah Ahmed    6 年前

    第一种方法是检查css属性并将其反转,如下所示:

    $(".something-i-clicked").on("click", function() {
    
    if($(".my-class").css("display") == "none") { // if display: none; is set to .my-class
    
      // reverse it to display: block;
      $(".my-class").css("display", "block");
    
    } else { // it has display: block;
    
      // reverse it to display: none;
      $(".my-class").css("display", "none");
    
    }
    })
    

    第二种方法是切换一个修饰符css类,可能如下所示:

    // my_css_file.css
    .my-class {
      display: none;
    }
    .d-block {
    display: block;
    }
    
    
    // my_js_file.js
    $(".something-i-clicked").on("click", function() {
    // toggle the class
    $(".my-class").toggleClass("d-block");
    })