1

次のコードを使用して、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()に機能せず、GoogleChromeで次のエラーが発生します。

Uncaught ReferenceError:accが定義されていません

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

4

2 に答える 2

6

コードにスコープの問題があります。accドキュメントレディハンドラーのコンテキストで変数をローカルに定義しましたが、ハンドラーのコンテキストで定義されていませんload

于 2012-12-22T20:13:12.253 に答える
2

コールバックの外部acc変数を再定義してみてください。.ready

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

...
于 2012-12-22T20:14:15.483 に答える