2010-11-23 2 views
6

Это проблема, с которой я, похоже, сталкиваюсь. Если, например, у меня есть раскрывающееся меню навигации с помощью функции jQuery hover(), и я быстро передвигаю курсор мыши над <li> примерно 10 раз, появится субнавигация, а затем исчезнет 10 раз.jQuery - Предотвращение зависания функций зависания от быстрых движений мыши

Есть ли способ предотвратить эту проблему?

Thanks

+3

очень похожи, 3 минуты старше: http://stackoverflow.com/questions/4256962/jquery-show-hide-question- переменная о-задержка – sje397 2010-11-23 14:36:00

ответ

7

Да, используйте функцию остановки!

$(this).stop().animate(...); 

Или

$(this).stop().show(); 
1

Ну вы могли бы отвязать событие на входе в него, и привязать его снова на выходе. Я склонен использовать переменные семафора, когда я не могу позволить себе повторный вход.

Сказав это, само событие hover(), вероятно, не стоит в очереди, а самих анимаций. Либо заметьте, что у вас уже есть анимация (семафоры), и не пропустите другую, или stop() анимацию (ы), пока она не будет продолжена.

3

Используйте функцию stop(), чтобы очистить очередь анимации элемента:

$(this).stop(true).show(); 
Смежные вопросы