Looping function and :hover interaction

Looping function and :hover interaction

I have a function that calls itself at the end with a setTimeout . This means that the hover event for that element fires as many times as the function has run (eg looped 3 times - 3 hover events fire). Is there a more efficient manner of looping that I should be using?