2015-01-15 4 views
1

Я использую jquery, чтобы создать простой эффект выпадающего списка. Окно выпадающего меню будет отображаться мгновенно, когда пользователь нависает над элементом триггера и исчезает, когда мышь покидает триггерный элемент.Как принудительно вызвать событие mouseover для запуска перед событием mouseout

$('ul > li').hover(function(){ 
    $(this).find('#dropDown').show(); 
},function(){ 
    $(this).find('#dropDown').fadeOut(1000); 
}); 

Проблема, как вы увидите в this fiddle в том, что (появляется выпадающий список) Mouseover события не будет срабатывать, если событие MouseOut (выпадающий список исчезает) до сих пор не завершено. Кто-нибудь знает, есть ли способ заставить раскрывающийся список появляться независимо от того, завершено ли затухание?

ответ

4

Просто используйте .finish() закончить предыдущую анимацию:

$('ul > li').hover(function(){ 
    $(this).find('#dropDown').finish().show(); 
},function(){ 
    $(this).find('#dropDown').fadeOut(1000); 
}); 

fiddle.

+0

Отлично! будет принимать ответ в течение 9 минут, как разрешено! – HelloWorld

+0

Добро пожаловать :) – simonzack

Смежные вопросы