2012-09-05 5 views
1

내 맞춤법 게임에서 단어가 완성되면 격자에서 사라집니다. 정해진 양의 단어가 완성되면 (이 경우 3) 전체 격자가 희미 해지고 뒤에있는 이미지가 드러납니다. 내가 지금 가지고있는 문제는 세 번째 단어를 완성하면 다시 마우스를 클릭 할 때까지 아무 일도 일어나지 않는다는 것입니다.클릭하지 않고 FadeOut

해당 단어가 완료되면 스크립트가 마우스 클릭없이 실행됩니다. 여기

...는 페이드 아웃 트리거 코드 조각

$('.drag').on('click', function(e) { 
e.preventDefault(); 
if(animation) return; 
animation = true; 
setTimeout(function(){animation = false;},500); 
var target = $('.drop-box.spellword:not(.occupied):first'); 
var targetPos = target.position(); 
var currentPos = $(this).offset(); 
var b = $(this); 

if (target.length) { 
    target.addClass("occupied"); 
    $(".minibutton").prop("disabled", true); 
    b.clone().addClass(
    b.data("letter") == target.data("letter") ? "wordglow3" : "wordglow").appendTo("table").css({ 
     background: "transparent", 
     position: "absolute", 
     top: currentPos.top, 
     left: currentPos.left 
    }).animate({ 
     top: targetPos.top, 
     left: targetPos.left 
    }, "slow", function() { 
     $(this).css({ 
      top: 0, 
      left: 0 
     }).appendTo(target); 
     if (!$('.drop-box.spellword:not(.occupied)').length) { 
      var wordIsCorrect = 0; 
      $('.drop-box.spellword').each(function() { 
       if ($(this).attr("data-letter") == $(this).find("div").attr("data-letter")) { 
        wordIsCorrect++; 
       } 
      }); 
      console.log(wordIsCorrect); 
      console.log($('.drop-box.spellword').length); 
      if ($('.drop-box.spellword').length == wordIsCorrect) { 

       $('.drop-box.spellword').addClass('wordglow2'); 
       $(right).val('Well Done!'); 
       $(right).show(); 
       audioS.play(); 
       $('.counter').html(completeWords + '/6').show(); 
       $(wrong).hide(); 
       $('.minibutton').prop('disabled', false); 

      } else { 

       $('.drop-box.spellword').addClass("wordglow4").css('color', 'transparent'); 
       $(wrong).val('Try Again'); 
       $('.minibutton').prop('disabled'); 
       $(wrong).show(); 
       audioF.play(); 
       $('.counter').html(completeWords + '/6').show(); 
       $(right).hide(); 
       //$('.minibutton').prop('disabled', true); 

       $('.drop-box.spellword') 
        .animate({ 'opacity': 1 }, 2000, function() 
          { 
           $(this) 
            .removeClass('wordglow4') 
            .removeClass('occupied') 
            .html('') 
            }); 
      } 


     } 
    }); 

} 


var completeLetters = $('.wordglow2').length; 
var completeWords = (completeLetters/3); 
$('.counter').html(completeWords + '/6'); 

if (completeWords == 3) { 
    $('table').fadeOut(2000); 
} 

var incompleteWords = $('.spellword').hasClass('.wordglow4').length; 
if (incompleteWords == 3) { 
    $('.minibutton').prop('disabled', false); 
} 

});

고맙습니다!

+3

그래서 사람들이 전체 게임을 쓰고 있습니다.) – Asciiom

+1

그 코드가 실행되는 이벤트는 무엇입니까? 게시하지 않은 코드가 더 있습니까? –

+0

전체 이벤트가 있습니다. @Rory McCrossan – sMilbz

답변

1

귀하의 레벨 완료 테스트 :

if (completeWords == 1) { 
    $('table').fadeOut(2000); 
} 

귀하의 코드 나 이해하기에 너무 지저분 .. 추가 클릭 한 문자 앞에 공격,하지만 난 당신이 당신이 테스트 분기에이 테스트를 이동 제안한다 완료 단어, 잘 작동합니다.

if ($('.drop-box.spellword').length == wordIsCorrect) { 

    $('.drop-box.spellword').addClass('wordglow2'); 
    $(right).val('Well Done!'); 

    // move the above test here 
} 
관련 문제