基本上,我所拥有的是函数内的setInterval。我想做的是,从外部控制它的行为。
这就是我所拥有的 -
function wheee() {
var i = 1;
slideee = setInterval(function() {
sliderContent.style.marginLeft = margin(i);
if(i < imagesNoOneLess) {
i++;
} else {
i = 0;
}
}, 5000); }
现在,我想清除wheee()
函数外部的间隔。我怎么能这样做?
我还希望从外面再次运行间隔。怎么样?
答案 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
。
使用对象以保持全局范围清洁。