我在尝试清除对象中设置的超时时遇到了麻烦,我有一个像这样的对象:
var banner=function(options){
this.s_btn=options.s_btn;
this.interval=null;
this.pos=0;
this.maxPos=4;
var _obj=this;
_obj.s_btn.bind("click",function(){
//clear Timeout
clearTimeout(_obj.interval);
_obj.interval=null;
//Change banner with some FX
_obj.changeBanner($(this).index());
//start timeout Again
_obj.setInt();
});
//Function that starts timeout
this.setInt=function(){
_obj.interval=setTimeout(function(){
//where slide to change
var to=(_obj.pos==_obj.maxPos)?0:Number(_obj.pos)+1;
//Change banner with some FX
_obj.changeBanner(to);
//starts bucle
_obj.setInt();
},_obj.time);
}
_obj.setInt();
}
有两种方法: - changeBanner:它改变了横幅的图像 - setInt:它启动一个超时循环,每隔X毫秒执行一次changeBanner函数。
此外,我已将click事件绑定到元素;我想重置超时循环,但我做错了。 :S
我将超时函数存储在this.interval中,当我点击之前调用的元素时,我将其清除。
答案 0 :(得分:0)
你在示例
中拼错了区间错误清除超时(_obj.inerval)
答案 1 :(得分:0)
我通过将setTimeout和clearTimeout引用到窗口来解决它:
window.setTimeout(_obj.interval)
和
window.clearTimeout(_obj.interval)