Использование jQuery для отображения div в ul при наведении курсора, но оно застревает при скрытии? - PullRequest
0 голосов
/ 06 сентября 2011

Так что в основном я пытаюсь создать горизонтальный ul для моего сайта nav.Я хочу, чтобы div появлялся под каждой ссылкой с отскоком при наведении на него курсора.Анимация работает правильно при наведении мыши, но при наведении мыши div не всегда исчезает.Я новичок в jQuery, поэтому я не уверен, что я делаю не так.Любая помощь очень ценится!

    //append a div with class blue-hover to all li elements in main-nav
    $('#main-nav li a').append('<div class="blue-hover"><\/div>');

    $('#main-nav li a').hover(

    //Mouseover, show the hidden blue-hover class with a bounce on hover
    function() {

        $(this).children('div').stop(true, true).show().effect( "bounce", 
      {times:1}, 300 );

    },

    //Mouseout, fadeOut the hover class
    function() {

        $(this).children('div').stop(true, true).fadeTo(0,300);   

    });

1 Ответ

0 голосов
/ 06 сентября 2011

Не используйте «this», когда могут быть задействованы дочерние элементы, если вы оставляете элемент a, перетаскивая его через div, то при некоторых обстоятельствах «this» может быть div, а не a.

Используйте currentTarget параметра eventObject для обработчика наведения на отпуск, чтобы найти текущую цель с учетом всплытия события.

е

  function(ev) {
      $(ev.currentTarget).children('div').stop(true, true).fadeTo(0,300);
     })
...