Применить 2-секундную задержку в выпадающем меню

0

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

Здесь у меня есть jQuery для 1-го пункта меню. Поэтому, когда я наведу элемент, его подменю будет показано через две секунды. Мой jQuery:

jQuery(".level0.nav-1").mouseover(function() {
    setTimeout(function() {
        jQuery(".level0.nav-1 .dropdown-container.left").show();
    }, 2000);
});
jQuery(".level0.nav-1").mouseout(function() {
    setTimeout(function() {
        jQuery(".level0.nav-1 .dropdown-container.left").hide();
    }, 0);
});

Проблема заключается в том, что подменю не исчезает мгновенно после того, как я выталкиваю действие. Только если я нажимаю на элемент и вытаскиваю мышью.
Может кто-нибудь помочь мне с этой проблемой? Я буду рад узнать новый метод, отличный от моего метода (что на самом деле не так хорошо, я думаю).

  • 0
    попробуйте использовать mouseenter / mouseleave, и не нужно setTimout в mouseleave
  • 0
    $(".level0.nav-1 .dropdown-container.left").delay(2000).fadeIn(); & удалить функцию setTimeout .
Теги:
web-services
magento

2 ответа

1

Не могли бы вы просто добавить одно и то же событие "mouseout" на уровень второго уровня, но без 2-секундной задержки?

Например:

jQuery(".level0.nav-1 .dropdown-container.left").mouseout(function() {
    $(this).hide();
});
-2

Можете ли вы использовать "размытие"?

$( ".level0.nav-1" ).blur(function() {})

http://api.jquery.com/blur/

  • 0
    Можете ли вы разработать свой ответ, пожалуйста?
  • 0
    Так как размытие просто теряет фокус (только одно событие), если у вас есть фокус второго меню и вы потеряете его, оно исчезнет быстрее.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню