Javascript - 需要在setInterval函数之外使用clearInterval

时间:2012-10-13 20:39:44

标签: javascript

基本上,我所拥有的是函数内的setInterval。我想做的是,从外部控制它的行为。

这就是我所拥有的 -

function wheee() {
var i = 1;

slideee = setInterval(function() {
sliderContent.style.marginLeft = margin(i);
    if(i < imagesNoOneLess) {
        i++;
    } else {
        i = 0;
    }
}, 5000); }

现在,我想清除wheee()函数外部的间隔。我怎么能这样做?

我还希望从外面再次运行间隔。怎么样?

3 个答案:

答案 0 :(得分:2)

你现在获得代码的方式,它可能只是起作用,因为你没有用var声明“slideee”。

只要您以某种方式从setInterval()导出返回值,就可以了。您可以将该变量显式为全局变量(优于隐式变量),或者让“wheee”函数将值返回给其调用者。

答案 1 :(得分:2)

全局变量并不危险,但如果只有一个滑块,那么编码它的一种很好的方法是使用对象文字来模拟单个对象。

var Slider= {
    slider: null,
    Start: function(i) {
        this.slider = setInterval(function() {
            // Slider code
            console.log('running: ' + i);
            i++;
        }, 1000);
    },
    Stop: function() {
        window.clearTimeout(this.slider);
    }
};

Slider.Start(1); // Start the slider
Slider.Stop(); // Stop the slider

答案 2 :(得分:1)

slideee的范围设置为wheee

使用对象以保持全局范围清洁。