0

したがって、基本的には、サイト ナビゲーション用の水平 ul を作成しようとしています。各リンクの下に 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);   

    });
4

1 に答える 1

0

子要素が関与する可能性がある場合は、"this" を使用しないでください。div の上にドラッグして a 要素を残すと、状況によっては、"this" が a ではなく div になる可能性があります。

eventObject パラメーターの currentTarget を hover leave ハンドラーに使用して、イベント バブリングが与えられた現在のターゲットを見つけます。

すなわち

  function(ev) {
      $(ev.currentTarget).children('div').stop(true, true).fadeTo(0,300);
     })
于 2011-09-06T03:45:53.440 に答える