Re: [問題] 怎麼讓焦點停留幾秒之後執行動作

看板Ajax作者 (沉默傷心)時間12年前 (2011/11/12 21:21), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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

11/12 22:23, , 1F
當你滑鼠進進出出,就會 set 一大票 timeout
11/12 22:23, 1F

11/12 22:34, , 2F
樓上說的是,我改一下程式碼
11/12 22:34, 2F
※ 編輯: iam87king 來自: 118.167.187.59 (11/12 22:39)

11/13 12:59, , 3F
加個.stop('true')
11/13 12:59, 3F
文章代碼(AID): #1EldB8jr (Ajax)
文章代碼(AID): #1EldB8jr (Ajax)