Мне бы твои проблемы ...
А по сути ответ дан уже
Timом.
Только для смены состояний флаг будет наращивать значения, а в hover будет стоять switch. И хранить флаг можно не как глобальную переменную, а как св-во самого элемента (с помощью метода
data).