作者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