2016-01-07 52 views
-1

ZivotBroj==-5时,我需要停止执行函数PadanjeFun。停止一个包含jQuery的函数

我试过jQuery stop()方法clearInterval(myVar)并返回,但它不工作。

我需要停止所有的树动画(#cepJedan, #cepDva, #cepTri)时ZivotBroj==-5

下面是代码:

var PadanjeFun=function(){ 

if(bod==4) //Change speed when bod reaches the number 
{ 
    q=4; 
} 
else if(bod==7) 
{ 
    q=3; 
} 


$(document).ready(function(){ 

    setInterval(function(){ //Neka zakasni prvi cep 
     $("#cepJedan").animate({ 
      top: "850px", 
     },1000 * q, function(){ 
      BodRacunaj(); 
      document.getElementById("cepJedan").style.top = "150px"; 
      ZivotOduzmi(); 
      document.getElementById("Broj").innerHTML = bod; 
     }); 

     }, 1000); //Let it start after 1 sec 
    }); 

    $(document).ready(function(){ 

     setInterval(function(){ 
      $("#cepDva").animate({ 
       top: "850px", 
      },1000 * q, function(){ 
       BodRacunaj(); 
       document.getElementById("cepDva").style.top = "150px"; 
       ZivotOduzmi(); 
       document.getElementById("Broj").innerHTML = bod; 
      }); 

     }, 9000); //Let it start after 9 sec 
     }); 

    $(document).ready(function(){ 

     setInterval(function(){ 
      $("#cepTri").animate({ 
       top: "850px", 
      },1000 * q, function(){ 
       BodRacunaj(); 
       document.getElementById("cepTri").style.top = "150px"; 
       ZivotOduzmi(); 
       PadanjeFun(); 
       console.log("Q je: "+q); 
       document.getElementById("Broj").innerHTML = bod; 
      }); 

     }, 3000); //Let it start after 3 sec 
     }); 


} 

这里是ZivotOduzmi功能,是否可以帮助任何人:

var ZivotOduzmi=function(){ 
if((document.getElementById("cepJedan").style.top == "850px") && (document.getElementById("box").style.left == "550px") || (document.getElementById("box").style.left == "980px")) 
    { 
    zivotBroj--; 
    console.log("Imate jos ovoliko zivota: "+zivotBroj); 

    var element = document.getElementById('Zivot'); 
    element.style.width = (element.offsetWidth - 100) + 'px'; 

    } 
else if((document.getElementById("cepDva").style.top == "850px") && (document.getElementById("box").style.left == "120px") || (document.getElementById("box").style.left == "980px")) 
    { 
    zivotBroj--; 
    console.log("Imate jos ovoliko zivota: "+zivot); 

    var element = document.getElementById('Zivot'); 
    element.style.width = (element.offsetWidth - 100) + 'px'; 

    } 
else if((document.getElementById("cepTri").style.top == "850px") && (document.getElementById("box").style.left == "120px") || (document.getElementById("box").style.left == "550px")) 
    { 
    zivotBroj--; 
    console.log("Imate jos ovoliko zivota: "+zivotBroj); 

    var element = document.getElementById('Zivot'); 
    element.style.width = (element.offsetWidth - 100) + 'px'; 

    } 
} 
+0

您可以用'setTimeout',而不是'setInterval' – Dhara

回答

1

你需要将setInterval分配给如下变量:

var anim3; 
$(document).ready(function(){ 

    anim3 = setInterval(function(){ 
     $("#cepDva").animate({ 
      top: "850px", 
     },1000 * q, function(){ 
      BodRacunaj(); 
      document.getElementById("cepDva").style.top = "150px"; 
      ZivotOduzmi(); 
      document.getElementById("Broj").innerHTML = bod; 
     }); 

    }, 9000); //Let it start after 9 sec 
    }); 

,并呼吁

clearInterval(anim3); 
$("#cepDva").stop(); 
+0

试过,加krajigre像你这样anim3,我补充道。 'if(zivotBroj == - 2) \t \t { \t \t clearInterval(krajigre); \t \t $(“#cepJedan”)。stop(); \t \t}' 由于某种原因,仍然有动画。 – Ivan