Слушатель JavaScript не запускается, если до конца анимации jquery .slideDown () - PullRequest
1 голос
/ 12 марта 2012

простой, я надеюсь!

Проблема, с которой я столкнулся, заключается в том, что у меня есть ('itemID'). Mouseover, который запускает анимацию JQuery для раскрывающегося меню для поля меню.Проблема состоит в том, что если мышь покидает исходный элемент (в данном случае текстовую ссылку) до завершения аминирования slideDown (), функция .mouseleave не вызывается.

В остальном работает нормально !!

Это то, что я использую: (menu14 - текстовая ссылка, FunctionsMenu3 - скрытый div, содержащий элементы меню)

$('#menu14').mouseover(function() {
   $('#FunctionsMenu3').slideDown('fast', function() {
    // Animation complete.
  });
});

$('#FunctionsMenu3').mouseleave(function() {
   $('#FunctionsMenu3').slideUp('fast', function() {
    // Animation complete.
  });
});

Мне кажется, что JS CANT будет уволен, потому что он занят созданием слайда ... сайт можно увидеть по адресу http://www.impero -classroom-management.com заранее спасибо !!

Ответы [ 2 ]

0 голосов
/ 10 апреля 2012

Ну, в конце концов я справился с этим, не анимируя выпадающий список, а только слайд вверх.

не исправление, но это было все, что я мог действительно сделать !!

$('#FunctionsMenu5').mouseleave(function() {
   $('#FunctionsMenu5').slideUp('fast', function() {
    // Animation complete.
  });
});
$('#menu15').mouseover(function() {
   $('#FunctionsMenu5').show();
});
0 голосов
/ 12 марта 2012

При отпускании мыши попробуйте .stop(), чтобы отменить текущую анимацию.

$('#menu14').hover(
  function() {
   $('#FunctionsMenu3').slideDown('fast');
  },
  function() {
   $('#FunctionsMenu3').stop().slideUp('fast');
  }
);
...