2014-02-06 2 views
-1

Я пытаюсь остановить/очистить интервал, но я получаю сообщение об ошибке.Как остановить/очистить Интервал

код ниже:

function play(){ 
     function sequencePlayMode() { 
     var arg1;//some arguments 
     var arg2;//some arguments 
     changeBG(arg1,arg2);//here is function that changes the background 
     } 

    var time = 5000; 
    var timer = setInterval(sequencePlayMode, time);//this starts the interval and animation 

    } 


    function stop(){ 
     var stopPlay = clearInterval(sequencePlayMode);//here i'm getting error "sequencePlayMode is not defined" 
    } 


    $("#startAnimation").click(function(){ 
      play(); 
    }); 

    $("#stopAnimation").click(function(){ 
      stop(); 
    }); 

Может кто-то помочь мне с этим, пожалуйста?

+0

clearInterval (таймер); Попробуйте этот – laaposto

+0

возможный дубликат [Stop setInterval call in JavaScript] (http://stackoverflow.com/questions/109086/stop-setinterval-call-in-javascript) – plalx

ответ

5

Вам нужно использовать переменную, в которой вы храните функцию, а не функцию, которую вы называете. Вам также необходимо сделать переменную доступной для другой функции.

(function() { 

    var timer; //define timer outside of function so play and stop can both use it 
    function play(){ 
     function sequencePlayMode() { 
     var arg1;//some arguments 
     var arg2;//some arguments 
     changeBG(arg1,arg2);//here is function that changes the background 
     } 

    var time = 5000; 
    timer = setInterval(sequencePlayMode, time);//this starts the interval and animation 

    } 


    function stop(){ 
     var stopPlay = clearInterval(timer); 
    } 


    $("#startAnimation").click(function(){ 
      play(); 
    }); 

    $("#stopAnimation").click(function(){ 
      stop(); 
    }); 

})(); 
+0

+1 для использования соответствующего закрытия – Candide

+0

@epascarello - конечно. .Используйте меня .. почему я пропустил это! большое спасибо! :)) – medzi

Смежные вопросы