1

无论出于何种原因,我无法重复此功能。一旦它得到 setTimeout,它就会吐出“未捕获的引用错误:getnumbers 未定义(其中 getnumbers 只是变量的名称。

$(文档).ready(函数(){


    var getnumbers = {

        countDigit:函数(){

            if (sessionStorage.counter=="NaN"){
                sessionStorage.counter="0";                                   
            }
            别的 {
                sessionStorage.counter=数字(sessionStorage.counter)+1;

            }

            $("#result").text("计数器:" +sessionStorage.counter);

            setTimeout("getnumbers.countDigit()",3000);             

        },

        _init:函数(){
            getnumbers.countDigit();    
        }
    };

    getnumbers._init();     

})
    

具有讽刺意味的是,如果我刷新页面,计数器就会起作用,所以我知道它只是卡在了那一行上。我会错过什么?

谢谢!

4

1 回答 1

6

setTimeout带有字符串参数的只是一个全局eval. 当它尝试评估getnumbers.countDigit()时,它会在全局范围内评估,并且不再有权访问getnumbers

解决方案:不要传入字符串。相反,试试这个:

setTimeout(getnumbers.countDigit, 3000);
于 2012-03-16T03:47:46.987 回答