使用clearInterval()时出错

Error while using clearInterval()

本文关键字:出错 clearInterval 使用      更新时间:2023-09-26

我使用以下代码每隔1秒隐藏和显示一个div

$(document).ready(function(e) {
    var acc = setInterval(function(){
        $("#element").fadeOut(function(){
            setTimeout(function(){
                $("#element").fadeIn()  
            }, 1000)    
        })
    }, 200)
})
$(window).load(function(){
    setTimeout(function(){
        clearInterval(acc);
    }, 10000)
})

clearInterval()没有正常工作,我在谷歌浏览器上得到以下错误:

Uncaught ReferenceError: acc is not defined

: http://jsfiddle.net/enve/4GWvM/

你的代码中有一个作用域问题,你已经在文档准备处理程序的上下文中本地定义了acc变量,而它没有在load处理程序的上下文中定义。

尝试在 .ready回调之外重新定义acc变量

var _acc = function(callback) {
    return setInterval(callback, 1000);
};
var acc = null;
$(document).ready(function() {
    acc = _acc(function() {
        $("#element").fadeOut(function(){
            setTimeout(function(){
                $("#element").fadeIn()  
            }, 1000)    
        })
    });
});
...