У меня есть код, который добавляет события наведения мыши и события наведения мыши ко всем тегам «a» на странице. Мне бы хотелось, чтобы мышка запускала 5-секундный таймер, после которого она вызывает функцию. Однако, если происходит новое событие наведения мыши, оно должно отменить все существующие таймеры. Код, который я использую, следующий. SetTimeout () работает нормально, но похоже, что clearTimeout () не ссылается на правильный timeoutID, хотя я объявил его глобально. Есть предложения?
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();
});
Я должен уточнить, что на самом деле должен быть только один активный таймер. Вот почему я хотел, чтобы это было глобальным. Если происходит событие наведения мыши, таймеры не должны оставаться. И если происходит событие отключения мыши, должен быть активен только один таймер - тот, который срабатывает при последнем событии отключения мыши.