简体   繁体   English

jQuery多个类在单击时切换

[英]jQuery multiple classes toggle on click

Im having an issue using jQuery with multiple classes to toggle. 我在使用带有多个类的jQuery进行切换时遇到问题。 I have this code: 我有以下代码:

$(function(){
   $(".mobile_btn").on("click", function(){
       $(".main_nav").toggleClass("mobile_active");
   }); 
});

what this does is when the user click the .mobile_btn the .main_nav will toggle with the .mobile_active class. 这是当用户单击.mobile_btn时.main_nav将与.mobile_active类一起切换。 Moreover i would like to insert .container and .container_active and i want them to toggle at the same time as the .main_nav with .mobile_active . 此外,我想插入.container.container_active ,我希望它们与带有.mobile_active.main_nav同时切换 So basically my code should look like this: 因此,基本上我的代码应如下所示:

$(function(){
   $(".mobile_btn").on("click", function(){
       $(".main_nav, .container").toggleClass("mobile_active container_active");
   }); 
});

I have tried this but it is not working. 我已经尝试过了,但是没有用。 Any ideas of how to fix this issue? 关于如何解决此问题的任何想法?

Thanks 谢谢

You can write like this : 您可以这样写:

 $(function(){ $(".mobile_btn").on("click", function(){ $(".main_nav").toggleClass("mobile_active"); $(".container").toggleClass("container_active"); }); }); 

Another idea is use function as argument. 另一个想法是使用函数作为参数。

$(function() {
  $(".mobile_btn").on("click", function() {
    $(".main_nav, .container").toggleClass(function() {
      return $(this).hasClass('main_nav') ? 'mobile_active' : 'container_active';
    });
  });
});

(not suggest, just an option) (不建议,只是一个选择)

Did you test your code? 您是否测试过代码? Because it works. 因为它有效。 See the demo. 参见演示。 You don't have .container in your HTML. 您的HTML中没有.container

Snippet 片段

 $(function(){ $(".mobile_btn").on("click", function(){ $(".main_nav, .container").toggleClass("mobile_active container_active"); }); }); 
 .container {outline: 3px dashed green; width: 300px; height: 90px;} .main_nav {outline: 2px solid blue; width: 100%; height: 30px; } .mobile_btn { width: 70px; line-height: 1.5; cursor: pointer; } .main_nav.mobile_active { outline: 3px solid red; background: rgba(255,0,0,.6); color: #CCC; } .container.container_active{outline: 5px solid #0f0; background: rgba(0,255,0,.3); color: #888; } .main_nav:after { content:'MOBILE INACTIVE';} .main_nav.mobile_active:after { content:'MOBILE ACTIVE';} .container:after { content:'CONTAINER EMPTY';} .container.container_active:after { content:'CONTAINER FULL';} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <section class="container"> <nav class="main_nav"> <button class="mobile_btn">SWITCH</button> </nav> </section> 

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

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