2013-06-05 3 views
1

Firefox 용 애드 블록 플러스 (광고를 차단하는 애드온)를 설치했기 때문에 scriptaculous로 구동되는 모든 애니메이션이 더 이상 작동하지 않습니다.자바 스크립트 기능이 완료되지 않았는지 확인

이제 알겠지만 자바 스크립트 기능이 완료되지 않았는지 확인하는 방법을 찾고 있습니다 (예 : 내 scriptaculous 애니메이션을 호출하는 것과 같습니다).

<script type="text/javascript"> 

function scriptaculous(){ 

    new Effect.Morph("thumb_id", { style: "height:300px;", duration: 0.8 }); 

} 

function enlarge_thumbnail(){ 

    scriptaculous(); 

// if(scriptaculous() was not completed){ 

    document.getElementById("thumb_id").style.height = "300px"; 

// } 

} 

</script> 

실제 문제는 첫 번째 버그로 인해 둘 모두를 호출 할 수 없으므로 두 번째로드를 막을 수 없다는 것입니다. 누구나 그걸 어떻게 다룰 지 알고 있니?

답변

0

효과가 시작될 때마다 효과가 전역 효과 대기열에 추가되므로 대기열이 있는지 대기열에 있는지 확인할 수 있습니다. 효과 방법을 즉시 반환하기 때문에

if(Effect.Queues.get('global').effects.length == 0) 
{ 
    //do something else 

} 

은 또한 당신은 정확하게 당신이 그렇게

new Effect.Morph("thumb_id", 
         { 
         style: "height:300px;", 
         duration: 0.8, 
         afterFinish: function(effect){ 
          //do other things when the effect is finished 
          //the callback is passed the effect object 
          //and the element it is working on is at effect.element 
         } }); 
같은 afterFinish 콜백을 사용하지 않으면 효과가 끝나면 알고 못해
관련 문제