2016-04-07 78 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,并能够停止间隔。