Вот пример:
$('#yourElement').on({
mouseenter: function (){
clearTimeout(testTimeout); // [1]
testTimeout = setTimeout(function(){ // [2]
...
}, numberOfMiliseconds);
},
mouseleave: function () { //[3]
clearTimeout(testTimeout);
}
}, '.whereIsYourElement');
[1], когда мышь входит в элемент, она удаляет предыдущий тайм-аут и увеличивает его [2] еще раз. Когда мышь покидает область [3], она также удаляет тайм-аут.
Это дает желаемый эффект, что тайм-аут выполняется только в том случае, если мышь вошла и оставалась в элементе в течение некоторого времени.