第一次动画执行后发出

Issue after the first animation execution

我有一个触发动画的按钮。当我再次单击该按钮时,它会切换 class 但不透明度在动画之后仍然存在于我的代码中。

所有后续点击都会发生这种情况。我怎样才能解决这个问题?

$( "#menu-button" ).click(function() {
    $("#right-sidebar").toggleClass("display");

    if($("#right-sidebar").hasClass("display") == false){
        $("#right-sidebar").css(opacity = "0");
    } else {
        $("#right-sidebar").animate({
            opacity: "1"
        }, "slow");
    }
});

你应该尝试 bind 而不是 click

$( "#menu-button" ).bind("click", function() {
      $("#right-sidebar").toggleClass("display");

      if($("#right-sidebar").hasClass("display") == false){
        $("#right-sidebar").css("opacity","0");
      } else {
        $("#right-sidebar").animate({
                  opacity: 1
              }, "slow");
      }
    });

问题来自 .css(opcity = "0"),正如评论中提到的 @Mohammad,只需解决此问题,您的代码就可以正常工作:

$( "#menu-button" ).click(function() {
  $("#right-sidebar").toggleClass("display");

  if(!$("#right-sidebar").hasClass("display")){
    $("#right-sidebar").css("opacity", "0");
  } else {
    $("#right-sidebar").animate({
      opacity: "1"
    }, "slow");
  }
});
#right-sidebar{
  width:80%;
  height: 100px;
  float: right;
  background-color: green;
  color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-lg btn-primary" id="menu-button">menu</button>

<div id='right-sidebar' class="display">right sidebar</div>