2016-11-03 119 views
0

我正在爲一個setinterval創建停止和啓動函數。Javascript:setinterval啓動和停止功能?

我一直在嘗試一切,但我似乎無法得到它的權利!

這是我的代碼:

function myStartFunction() { 
var myVar = setInterval(function(){ myTimer() }, 6000); 

function myTimer() { 

    $.ajax({ 
     type:"post", 
     url:"myphppage.php", 
     datatype:"html", 
     success:function(data) 
     { 
     if(data!="") 
     { 



     } 
     } 
    }); 

} 

} 

function myStopFunction() { 
    clearInterval(myVar); 
} 

,這是我怎麼一直試圖打電話給他們(這是我需要給他們打電話):

啓動它:

myStartFunction(); 

,並阻止它:

myStopFunction(); 

但這是不正確的,我知道它。

可能有人請就這個問題提出建議,因爲我幾乎把我的頭髮拉出來!

在此先感謝。

+0

一個全局變量,你在哪裏調用'myStopFunction'? –

+1

'myVar'超出了'myStopFunction()'的範圍' – Robiseb

+0

[在JavaScript中停止setInterval調用](http://stackoverflow.com/questions/109086/stop-setinterval-call-in-javascript) –

回答

2

將myVar聲明爲全局函數(在函數外部),在您的示例中導致myStopFunction看不到它。

var myVar; 

function myStartFunction() { 
    myVar = setInterval(function(){ myTimer() }, 6000); 
} 

function myTimer() { 
    $.ajax({ 
     type:"post", 
     url:"myphppage.php", 
     datatype:"html", 
     success:function(data) 
     { 
     if(data!="") 
     { 
     } 
     } 
    }); 
} 

function myStopFunction() { 
    clearInterval(myVar); 
} 
2

設置myVar因爲這樣

var myVar = 0; 
 

 
function myStartFunction() { 
 
    console.log('myStartFunction'); 
 
    myVar = setInterval(function(){ myTimer() }, 6000); 
 

 
    function myTimer() { 
 
    console.log('myTimer'); 
 
    /* 
 
    $.ajax({ 
 
     type:"post", 
 
     url:"myphppage.php", 
 
     datatype:"html", 
 
     success:function(data) 
 
     { 
 
     if(data!="") 
 
     { 
 

 

 

 
     } 
 
     } 
 
    }); 
 
    */ 
 
    
 
    // FOR TEST 
 
    myStopFunction(); 
 
    } 
 

 
} 
 

 
function myStopFunction() { 
 
    console.log('myStopFunction'); 
 
    clearInterval(myVar); 
 
} 
 

 

 
// FOR TEST 
 
myStartFunction();