为什么不弹出()增加变量c?

时间:2014-03-31 09:50:01

标签: javascript setinterval intervals

我是Javascript的初学者。

每次调用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>

4 个答案:

答案 0 :(得分:1)

加载页面时,请调用setInterval。

因此,每两秒钟,您将调用弹出功能,即“hallo”。

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

=&GT;要使c变量递增,请在弹出函数中增加它。

编辑: 用更好的布局回答评论:

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

var refreshIntervalId = setInterval(fname, 10000);

/* later */

clearInterval(refreshIntervalId);

答案 1 :(得分:1)

你需要在你的函数中提高c:

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

答案 2 :(得分:1)

window.onload,您正在调用setInternal方法,您正在调用popup函数。 因此,您需要在c函数中增加并打印popup。此外,还需要在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/

答案 3 :(得分:0)

只有在页面加载时才会调用window.onload函数。您必须在弹出功能中增加支票c

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);
    }
}