Javascript 瓷砖不能右转

Javascript 瓷砖不能右转,javascript,jquery,css,arrays,Javascript,Jquery,Css,Arrays,我正在制作一个网站。我想让瓷砖翻转,然后每隔一块瓷砖再翻转一次。直到现在,它仍然有效,除了一个小错误,您按下的互动程序直到您再次单击时才会返回。任何帮助都将不胜感激 代码如下: $(文档).ready(函数(){ var先前=[]; $('.flip card')。每个(功能(i,obj){ $(此)。单击(函数(){ if($(this).find('.flip-card-inner').hasClass('flip-card-transform')){ $(this).find('.flip

我正在制作一个网站。我想让瓷砖翻转,然后每隔一块瓷砖再翻转一次。直到现在,它仍然有效,除了一个小错误,您按下的互动程序直到您再次单击时才会返回。任何帮助都将不胜感激

代码如下:

$(文档).ready(函数(){

var先前=[]; $('.flip card')。每个(功能(i,obj){

$(此)。单击(函数(){
if($(this).find('.flip-card-inner').hasClass('flip-card-transform')){
$(this).find('.flip-card-inner').removeClass('flip-card-transform');
}否则{
$(this).find('.flip-card-inner').addClass('flip-card-transform');
上推(本);
如果(previous.length>=2&&previous[previous.length-2]!=previous[previous.length-1]){
对于(变量i=0;i

})如果我正确理解了你的问题,你希望一张卡片在一段时间后自动翻转?如果是这样,你只需要设置一个
超时时间
并从
中删除类
翻转卡片转换
。翻转卡片内部

旁注:你肯定应该使用变量来优化你的代码,而不是执行
$(此操作)。查找('.flip card inner')
–将
转换为jQuery对象,并在每次需要
flip card inner
时通过它的子对象进行搜索。也可以代替
$('.flip card')。每个(…)
您可以直接使用
$('.flip card')。单击(…)
。此外,正如Harun Yilmaz在其评论中建议的那样,您不需要使用previous作为数组

因此,类似这样的方法应该有效:

$(文档).ready(函数(){
var先前
变量超时
$('.flip card')。单击(函数(){
var cardInner=$(this).find(“.flip-card-inner”)
if(cardInner.hasClass('flip-card-transform')){
cardInner.removeClass('flip-card-transform')
clearTimeout(超时)
}否则{
addClass('flip-card-transform')
//设置一个超时
超时=设置超时(函数(){
cardInner.removeClass('flip-card-transform')
},2000)//为您设置任何可用的时间
//正如Harun Yilmaz在他的评论中所建议的,您不需要使用previous作为数组
if(previous&&previous.hasklass('flip-card-transform')){
previous.removeClass('flip-card-transform')
}
上一个=卡迪纳
}
})
})

请将所有相关代码放在问题中,这样人们就不必离开现场来复制问题并理解您的问题。为什么要将
previous
用作数组?只需将其设置为包含单个对象的变量。首先翻转已翻转的卡(previous)首先。然后翻转单击的卡片并将其分配给上一个
,除非上一个和当前的是相同的。这个想法是当我每隔一次打开一个磁贴时,我更新代码,但当我单击一个磁贴然后再单击另一个磁贴时,返回到上一个磁贴时,两者都保持打开状态。
$(this).click(function() {
  if ($(this).find('.flip-card-inner').hasClass('flip-card-transform')) {
    $(this).find('.flip-card-inner').removeClass('flip-card-transform');

  } else {
    $(this).find('.flip-card-inner').addClass('flip-card-transform');
    previous.push(this);


    if (previous.length >= 2 && previous[previous.length - 2] != previous[previous.length - 1]) {

      for (var i = 0; i < previous.length; i++) {
        if ($(this).find('.flip-card-inner').hasClass('flip-card-transform')) {
          $(previous[i - 1]).find('.flip-card-inner').removeClass('flip-card-transform');
          console.log("2")

        } else {
          $(this).find('.flip-card-inner').addClass('flip-card-transform');

          console.log("3")
        }

      }

    }

  }
});