1

私はいくつかのjsコードを持っています、それはホバーで私のメニューを開かなければなりません。ただし、マウスオーバー/アウトには反応しません。どこが間違っているの?

jQuery(document).ready(function() {
        jQuery('#user-menu').bind('mouseover', openSubMenu);
        jQuery('#user-menu').bind('mouseout', closeSubMenu);

        function openSubMenu() {
            jQuery(this).find('.dropdown-menu').css('display', 'block');    
        };

        function closeSubMenu() {
            jQuery(this).find('.dropdown-menu').css('display', 'none'); 
        };

    });

そしてここにいくつかのhtmlコード

<div id="user-menu" class="pull-right btn-group"><a class="btn btn-success dropdown-toggle" data-toggle="dropdown" href="#">User menu
  <span class="caret"></span>
    </a>
    <ul class="dropdown-menu" id="user_dropdown_menu"><li class="menu-2 first"><a href="/courses/user">My account</a></li>
<li class="menu-15 last"><a href="/courses/user/logout">Log out</a></li>
</ul>
  </div>
4

2 に答える 2

2

hover代わりにjQuery を使用することをお勧めします。

$(document).ready(function() {
    $('#user-menu').hover(function () {
        $(this).find('.dropdown-menu').toggle();
    });
});

ノート:

  • hoverに1 つの関数を渡すと、mouseover と mouseout の両方でその関数が起動されます
  • トグルは、要素の現在の状態に応じて表示または非表示になります
于 2012-08-20T13:07:57.637 に答える
1

これを試して:

jQuery(document).ready(function() {
  function openSubMenu() {
         jQuery(this).find('.dropdown-menu').css('display', 'block');
  };
  function closeSubMenu() {
         jQuery(this).find('.dropdown-menu').css('display', 'none');
  };

  jQuery('#user-menu').bind('mouseover', openSubMenu);
  jQuery('#user-menu').bind('mouseout', closeSubMenu);
}); 
于 2012-08-20T13:07:00.247 に答える