Как выйти из функции setInterval, определенной в jquery - PullRequest
0 голосов
/ 14 сентября 2010

У меня есть этот код JavaScript:

        var step = 8;                 // How many pixels to move per step
        var current = -1920;            // The current pixel row
        var imageWidth = 1920;        // Background image width
        var headerWidth = 960;        // How wide the header is.

        function slide_in(){
            //Go to next pixel row.
            current += step;

            //Set the CSS of the header.
            $('#bgfade').css("background-position",current+"px 0");

            if(current==0) alert('stop');
        }

        //Calls the scrolling function repeatedly
        $('#bgfade').click(function(){        
            var init = setInterval("slide_in()", 1);
        });

, это делает фон слайд.я хочу выйти, когда переменная ток = 0, и пусть фон в этой позиции.

спасибо

1 Ответ

0 голосов
/ 14 сентября 2010

Вам нужно использовать clearInterval(), например:

var step = 8;                 // How many pixels to move per step
var current = -1920;            // The current pixel row
var imageWidth = 1920;        // Background image width
var headerWidth = 960;        // How wide the header is.
var init;

function slide_in(){
    //Go to next pixel row.
    current += step;

    //Set the CSS of the header.
    $('#bgfade').css("background-position",current+"px 0");

    if(current==0) clearInterval(init);
}

//Calls the scrolling function repeatedly
$('#bgfade').click(function(){        
    init = setInterval(slide_in, 1);
});

Другие изменения здесь относятся к области видимости, поэтому идентификатор таймера доступен для другой функции, а также не передает строку в setInterval(), чтобы избежать любых других потенциальных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...