Проблема с эффектом наведения JQuery

Я создал простой скрипт JQuery с эффектом наведения на некоторые ссылки. Сценарий отлично работает, как вы можете видеть здесь: Test Sample... (Пожалуйста, протестируйте его на любой браузер, кроме IE)

Но если я быстро наведу курсор на ссылки, вы заметите, что значки изображений не исчезают, как требуется. Я пробовал все, чтобы исправить это, но я не могу найти подходящего решения.

Теперь вопрос: Как я могу быть уверен, что эффект наведения mouseOut применяется после того, как эффект наведения mouseOver полностью выполнен?


person Brad    schedule 24.10.2009    source источник


Ответы (2)


Вам нужно применить stop() к элементам, которые были анимированы. Попробуй это:

function hide_frame() {
   var hoveredLang = $(this).parent();              
   hoveredLang
      .find('.language-name').stop(true, true)
      .find('.download-img').stop(true, true)
      .find('.info-img').stop(true, true);
   //eccetera...
person Alex Bagnolini    schedule 24.10.2009
comment
Да... У меня такое есть, теперь работает нормально. Я должен применить stop() к каждому эффекту для каждого элемента. Большое спасибо Alex & o.k.w :) - person Brad; 24.10.2009

Поскольку ваш анимационный эффект имеет продолжительность до завершения, вам необходимо обрабатывать случаи, когда наведение/снятие наведения происходит во время анимации.

Я использую функцию JQuery stop (http://docs.jquery.com/Effects/stop)

Eg.

$("селектор").stop(true,true).youreffect(.....);

Попробуйте.

person o.k.w    schedule 24.10.2009
comment
Спасибо за помощь, например. Я сделал это, как вы упомянули, я написал в событии unhover: $(this).stop(true, true); Но ничего не меняется... Можете проверить в образце онлайн, я его обновил. Но ваша идея верна ... Проблема в том, что я так быстро отключаюсь, прежде чем продолжительность эффекта наведения завершится. Любое другое предложение? - person Brad; 24.10.2009