作者iam87king (沉默伤心)
看板Ajax
标题Re: [问题] 怎麽让焦点停留几秒之後执行动作
时间Sat Nov 12 21:21:09 2011
※ 引述《knives ()》之铭言:
: 比方说,我现在有一个div 它的class叫做 showme
: 如果当我用jQuery的hover事件,如果用户的焦点在showme 停了一段我设定好的时间
: 比方三秒之後,就执行另外一个动作 function act2();
: 我是有想过用settimeout 的方式,可是如果用户在三秒之前就换了焦点
: 那我该怎麽取消刚才settimeout应该要执行的动作
: 有人有比较完善的流程建议吗
: 谢谢回答
原版
function act2(){
if(window.showmeIsFocused){
alert("KerKer");
}
}
$(".showme").hover(function(){
window.showmeIsFocused = true;
setTimeout(act2, 30000);
}, function(){
window.showmeIsFocused = false;
});
修改後
function act2(){
alert("KerKer");
}
$(".showme").hover(function(){
window.showmeTimeoutId = setTimeout(act2, 30000);
}, function(){
clearTimeout(window.showmeTimeoutId);
});
这样是否有比较好?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.187.59
1F:→ tyf99:当你滑鼠进进出出,就会 set 一大票 timeout 11/12 22:23
2F:→ iam87king:楼上说的是,我改一下程式码 11/12 22:34
※ 编辑: iam87king 来自: 118.167.187.59 (11/12 22:39)
3F:→ dlikeayu:加个.stop('true') 11/13 12:59