我有一些代碼,將頁面上的所有'a'標籤添加鼠標事件和鼠標事件。我喜歡它,以便鼠標輸出啓動5秒計時器,然後調用一個函數。但是,如果新的mouseover事件觸發,它應該取消任何現有的定時器。我使用的代碼如下。 setTimeout()工作正常,但它似乎像clearTimeout()沒有引用正確的timeoutID,即使我全局聲明它。有什麼建議麼?clearTimeout鼠標懸停事件不清除setoutout鼠標事件
var timeoutID;
function addMouseoverEvent() {
$('a').each(function(index) {
$(this).mouseover(function() {
clearTimeout(timeoutID);
// do stuff
})
});
}
function addMouseoutEvent() {
$('a').each(function(index) {
$(this).mouseout(function() {
timeoutID = setTimeout(function() {
// do stuff
}, 5000);
})
});
}
$(window).load(function() {
addMouseoverEvent();
addMouseoutEvent();
});
我應該澄清,應該只有一個活動計時器。這就是爲什麼我希望它是全球性的。如果發生鼠標懸停事件,則不應保留定時器。如果發生鼠標事件,則只有一個計時器應該處於活動狀態 - 由最後一次鼠標事件觸發的計時器。
是否有你的錨內的圖像或?任何其他元素? – 2010-08-10 01:26:53
是的,可能有圖像。未知元素將是什麼(這實際上是一個C hrome插件可以在每個訪問過的頁面上運行,所以頁面的內容可以是任何東西)。 – ggutenberg 2010-08-10 01:40:18