Не использую jQuery, но у меня это работает, и подход должен быть похожим
<script type="text/javascript" charset="utf-8">
var doingStuff = false;
function doStuff() {
if (doingStuff) {
document.getElementById('stuff').innerHTML += '.';
setTimeout(doStuff, 100);
}
}
</script>
<p onmouseover="doingStuff = true; doStuff()" onmouseout="doingStuff = false">
Mouseover to do stuff
</p>
<p id="stuff">Stuff: </p>
Это добавит .
к документу каждые 100 мс, пока вы зависаете.
В основном, установите логическое значение на true при наведении курсора, и false и наведите курсор мыши. И не планируйте следующий вызов, если переменная не истинна. Кроме того, вы не вызываете функцию каждые 100 мс, если вам не нужно. Это означает, что ничего не происходит до тех пор, пока вы не наведете курсор, установите var в true и отключите повторяющуюся функцию.