2010-10-15 17 views
0

如果鼠標停止一個div我需要調用一個特定的功能,但我需要把它所有的時間以上..當鼠標停在div上方時,如何始終保持調用該函數的功能?

我試過.mouseover().hover()但這些工作中的鼠標移動

如何正當隨時保持呼叫功能?

+4

你是什麼意思的所有時間?每一秒?每毫秒?緊接着它返回?你可能不想讓你的用戶的CPU着火 - 爲什麼你認爲你需要這個? – bdonlan 2010-10-15 12:57:34

回答

1

setInterval功能,您可以根據固定的日程安排功能安排反覆調用:

var intervalKey = setInterval(yourFunction, milliseconds); 

的「毫秒」值告訴系統如何長時間通話之間的等待時間。該循環可以通過調用

clearInterval(intervalKey); 

被取消,你會怎麼做,是設置在「鼠標懸停」事件的標誌,然後清除標誌中的「鼠標移開」的處理程序。 「mouseover」處理程序也會啓動間隔計時器。定時器功能將檢查標誌以確定是否應該停止(標誌不再設置),並取消自身。

0

.hover()只要鼠標懸停就適用於我。它不必保持移動。試了2分鐘沒有問題。 Nothing mentioned here

0

您可能不想繼續觸發相同的功能。這將在客戶端的處理器上謀殺。也許超時並重新檢查?

0

如果您想跟蹤框內的鼠標移動,則需要使用mousemove()而不是mouseover()hover()

在這裏看到一個很好的例子:http://www.lbstone.com/reference/jquery/follow_mouse.html

如果你想你問的正是在這個問題 - 即不斷地一遍又一遍地開火同樣的功能,而鼠標在DIV,你仍然需要hover()mouseover(),但當它們觸發時,您需要撥打setTimeout()啓動重複功能,並在該功能中檢查鼠標是否仍在<div>之內,如果是,則重複setTimeout()呼叫。 (或者,使用setInterval()啓動順序和clearInterval()來阻止它;同樣的最終結果)

這是一個相當複雜的操作(並充滿可能出現的問題),所以我會避免,如果在所有可能這樣做。這是什麼,你試圖通過這樣做(有一個很好的機會theres更好的方式來做到這一點!-))

相關問題