2014-03-31 35 views
-2

我是一个Javascript初学者。为什么不弹出()增量变量c?

为什么c每次都会上去popup()被调用?

我用document.write,看它是否会上涨,但它保持与1

<script> 

    var c = 0; 



window.onload=function() 
{ 
    var myVar = setInterval('popup()',2000); 

    c++; 
    document.write(c); 
    if(c>2) 
    { 
    clearInterval(myVar); 
    } 
} 

function popup() 
{ 
    alert('hallo'); 

} 

</script> 

代码中间隔不会C> 2后停止。

<script> 

var c = 0; 
var myVar = null; 

window.onload=function() 
{ 
    myVar = setInterval('popup()',2000); 
} 

function popup() 
{ 
    alert('hallo'); 
    c++; 
    document.write(c); 
    if(c>2) 
    { 
     clearInterval(myVar); 
    } 
} 

</script> 

回答

1

在加载页面时,调用setInterval。

因此,每隔两秒钟,您将调用弹出功能,其中显示'hallo'。

然后,你增加你的变量,等...

=>让你的c变量递增,在弹出的功能,增加它。

编辑: 要回答一个更好的布局注释:你需要提高下,在你的函数

setInterval() returns an interval ID, which you can pass to clearInterval(): 

var refreshIntervalId = setInterval(fname, 10000); 

/* later */ 

clearInterval(refreshIntervalId); 
+0

谢谢,但现在我有其他的问题。 我的间隔将不会停止后c> 2 – user3406286

+0

加入检查的功能;-) – Elfentech

+0

嗨,是的,我做了,但它仍然无法正常工作,对不起,人真的很简单的问题! – user3406286

1

function popup() 
{ 
    alert('hallo'); 
    c++; 
} 
0

你的window.onload函数被调用一次当页面加载时。您必须在弹出的功能

var c = 0; 
var myVar = null; 

window.onload=function() 
{ 
    myVar = setInterval('popup()',2000); 
} 

function popup() 
{ 
    alert('hallo'); 
    c++; 
    document.write(c); 
    if(c>2) 
    { 
     clearInterval(myVar); 
    } 
} 
+0

嗨感谢您的答复,但现在我的间隔即使在c> 2后也不会停止。 – user3406286

1

递增支票C在window.onload,你调用setInternal方法,你在呼唤popup功能。 因此,您需要增加并在popup函数中打印c。此外,clearInterval也需要在popup函数中调用。

<script> 
    var c = 0, 
     myVar; 
    window.onload = function() { 
     myVar = setInterval(popup, 2000); 
    } 

    function popup() { 
     //alert('hello'); 
     c++; 
     document.write(c); 
     if (c > 2) { 
      clearInterval(myVar); 
     } 
    } 
</script> 

的jsfiddle:http://jsfiddle.net/jaNjn/