【发布时间】:2011-12-11 06:40:21
【问题描述】:
我想让一个元素淡入,并在页面上停留 7 秒,然后淡出。我可以随时取消它。
我定义了以下功能。但是当我打电话给info_timeout.setup(ele, 'some msg here')时,ele只是淡入并立即淡出。
我错过了什么吗?
var info_timeout = {
show_info: function(){
this.ele.html(this.msg).fadeIn('normal');
this.id = setTimeout(this.hide_info(), 7000);
},
hide_info: function(){
console.log(this.ele, this.id);
this.ele.fadeOut('slow');
delete this.id;
},
setup: function(ele, msg) {
this.ele = ele;
this.msg = msg;
this.cancel();
this.show_info();
},
cancel: function() {
if(typeof this.timeoutID == "number") {
clearTimeout(this.id);
delete this.id;
}
}
};
谢谢。
【问题讨论】:
-
这个问题一天被问一百次。
-
@zzzzBov 查找副本。关闭。大多数时候我认为这只是可怕的标题......
-
@pst,我完全同意标题,几乎不可能找到一些问题的骗子,因为它们是具有相同问题和相同答案的不同代码。
标签: javascript timeout settimeout