jquery修复单击记忆

z2acfund  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(282)
$(".fsb").on("click", function () {
    if ($('.fsb').hasClass('fsbc')) {
        $('#sfo p').fadeIn(500);
        setTimeout(function () {
            $('#sfo p').fadeOut(500);
        }, 500);
    } else {
        $('#sfof p').fadeIn(500);
        setTimeout(function () {
            $('#sfof p').fadeOut(500);
        }, 500);
    }
});

在多次单击按钮(fast)后,它将重复隐藏和取消隐藏那么多次。我想禁用它,但没有想法。(对不起,我是新手)。

von4xj4u

von4xj4u1#

jquery允许使用 .fadeIn().fadeOut() 连锁React setTimeout() .
要删除所有排队的动画,请执行以下操作: .stop(true) 在他们面前。
在事件处理程序中,可以使用 $(this) 使用单击的元素。

$(document).ready(function() {
  $(".fsb").on("click", function() {
    if ($(this).hasClass('fsbc')) {
      $('#sfo p').stop(true).fadeIn(500).fadeOut(500);
    } else {
      $('#sfof p').stop(true).fadeIn(500).fadeOut(500);
    }
  });
});
.hide-p p {
  display: none;
}
<button class="fsb fsbc">Click SFO</button>
<button class="fsb">Click SFOF</button>
<div id="sfo" class="hide-p">
  <p>SFO</p>
</div>
<div id="sfof" class="hide-p">
  <p>SFOF</p>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

相关问题