带条件开关等级

时间:2019-01-16 23:28:51

标签: jquery

我想用条件切换类,但是它不起作用,请告诉我哪里错了。上课应该 将立即打开,但3秒钟后关闭。预先感谢您的答复。

$(".sm-menu").click(function(menu){
  setTimeout(('.menu_ul').toggleClass('menu_ul-off') menu, 3000);
});

1 个答案:

答案 0 :(得分:0)

您可以像这样使用setTimeout()

第一次按此按钮将立即打开课程,第二次按三秒钟后将关闭按钮。您可以使用hasClass() < / p>

$(".sm-menu").click(function(menu){
  if(!$('.menu_ul').hasClass('menu_ul-off')){
    $('.menu_ul').addClass('menu_ul-off');
  }else{
    setTimeout(function(){
      $('.menu_ul').removeClass('menu_ul-off');
    }, 3000);
  }
});
.menu_ul{
  display : none;
}
.menu_ul-off{
  display : block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="sm-menu">Menu Click<div>

<div class="menu_ul">Menu UL<div>

,如果要添加课程,则可以使用delay().queue(),然后单击一键 < / p>

$(".sm-menu").click(function(menu){
  $('.menu_ul').addClass("menu_ul-off").delay(3000).queue(function(next){
    $(this).removeClass("menu_ul-off");
    next();
  });
});
.menu_ul{
  display : none;
}
.menu_ul-off{
  display : block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="sm-menu">Menu Click<div>

<div class="menu_ul">Menu UL<div>