2016-04-07 119 views
-1

我的問題是結束按鈕不工作,我的警報仍呈現像我從來沒有點擊結束按鈕需要在停止警報間隔

<form><input type="button" value="StartAlert" onclick="haf()"></form> 
<form><input type="button" value="EndAlert" onclick="wuf()"></form> 
<script> 
function haf() 
{ 
var wtf = window.setInterval(function() { alert('rekt')} , 1000); 
} 
</script> 
<script> 
function wuf() 
{ 
window.clearInterval(wtf); 
} 
</script> 
+2

你'wtf'變量不能正常範圍的。在函數之外定義它。 – j08691

回答

0

只是一個小小的修復,它會按預期工作。將wtf變量的聲明移出haf()函數。當你在函數內部聲明它時,它就變成了只能在該函數內部訪問的局部變量。通過定義外部變量使其成爲全局變量,因此也可以訪問wuf()函數。

<form><input type="button" value="StartAlert" onclick="haf()"></form> 
 
<form><input type="button" value="EndAlert" onclick="wuf()"></form> 
 
<script> 
 
var wtf; 
 
function haf() 
 
{ 
 
wtf = window.setInterval(function() { alert('rekt')} , 1000); 
 
} 
 
</script> 
 
<script> 
 
function wuf() 
 
{ 
 
window.clearInterval(wtf); 
 
} 
 
</script>

2

你需要在更高範圍內聲明的間隔變量wtf因爲它目前只會您haf()函數中存在:

<script> 
    var wtf; 
    function haf(){ 
     wtf = window.setInterval(function() { alert('rekt')} , 1000); 
    } 
</script> 
<script> 
    function wuf(){ 
     window.clearInterval(wtf); 
    } 
</script> 

範圍界定它的功能之外將使它當你打電話給你wuf()功能提供給其他函數中調用,所以現在,它會交流能夠看到wtf,並能夠停止間隔。