toggleClass() 第一次后不起作用

toggleClass() doesn't work after first time

查看我的代码笔:http://codepen.io/Chiz/pen/XmEvdm

点击红框。它旋转,现在出现蓝色框。 单击蓝色框。它不会切换回红色框。

我很确定 toggleClass 部分的 JQuery 代码是正确的,但为什么它不起作用?

谢谢!

var vCard = $("#card");

vCard.on("click", function()
{
  $(this).toggleClass("flipped");
});
@mixin prefix($prop, $val)
{
  -webkit-#{$prop}: #{$val};
  -moz-#{$prop}: #{$val};
  -ms-#{$prop}: #{$val};
  #{$prop}: #{$val};
}

.container
{
  width:200px;
  height:260px;
  position:relative;
  perspective:800px;
}

#card
{
  width:100%;
  height:100%;
  position:absolute;
  @include prefix(transform-style,preserve-3d);
  @include prefix(transition, transform 1s);
  @include prefix(backface-visibility, hidden);
  @include prefix(transform-style, preserve-3d);
}

 #card.flipped
{
  @include prefix(transform, rotateY(180deg));
}

#card figure
{
  display: block;
  height: 100%;
  width: 100%;
  line-height: 260px;
  color: white;
  text-align: center;
  font-weight: bold;
  font-size: 140px;
  position: absolute;
  @include prefix(backface-visibility, hidden);
}

.front
{
  background-color:lighten(red,30%);
}
.back
{
  background-color:lighten(blue,30%);
  @include prefix(transform, rotateY(180deg));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>

绑定到 section 时触发的事件。

$('section').on("click", function()
{
 console.log('clicked'); $(this).children('div').toggleClass("flipped");
});

正如@jumpingcode 评论的那样,它与您 css 做出 div 改变位置有关。

试试这个:- http://codepen.io/anon/pen/RWybrd

#card

中删除 @include prefix(backface-visibility, hidden);

我做了以下操作并且对我有用。

我从 .card.flipped 中删除了 -webkit-backface-visibility: hidden;backface-visibility:hidden;,并将它们替换为 -moz-backface-visibility: hidden;