2013-09-24 2 views
0

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

<div id="global_menu"> 
     <span id="show_global_menu" class="icons_large">(</span> 
      <ul id="dropdown" class="hidden"> 
       <span class="arrow-u" style="margin-top:-8px;"></span> 
       <li> @Ajax.ActionLink("Icon Legend", "font_legend", null, new AjaxOptions {   UpdateTargetId = "placeholder_extra1", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, new { @class = "" })</li> 
       <li><a href="../Home/Index" title="Sign Out">Sign Out</a></li> 
       <li>Support</li> 
      </ul> 
</div> 
    <script> 
     $(document).ready(function() { 
      if ($("ul#dropdown").hasClass("hidden")) { 
       $("span#show_global_menu").hover(function() { 
        $("ul#dropdown").slideDown("slow"); 
       }); 
      }; 
     $("ul#dropdown").hover(function(){ 
      $("ul#dropdown").mouseout(function() { 
       $("ul#dropdown").addClass("hidden"); 
      }); 
     }); 
     }); 
</script>  

+2

Вы связывание обработчика событий внутри другого обработчика событий. – adeneo

+0

Что такое css для вашего .hidden класса? –

+0

скрыто с дисплеем: нет – Mark

ответ

0

Использование:

<script> 
    $(document).ready(function() { 
     if ($("ul#dropdown").hasClass("hidden")) { 
      $("span#show_global_menu").hover(function() { 
       $("ul#dropdown").slideDown("slow"); 
      }); 
     }; 

     $("ul#dropdown").mouseleave(function() { 
      $("ul#dropdown").slideUp('slow'); 
     }); 
    }); 
</script> 
+1

Он протестирован с вашим кодом. работая как шарм – Salim

+0

Спасибо !!! Это дало мне огромную головную боль для того, чтобы быть таким маленьким меню. Ура! – Mark

0

Попробуйте somesing как это: $ (документ) .ready (функция() {

$("span#show_global_menu").hover(function() { 
    $("ul#dropdown").slideDown("slow"); 
},function(){ 
     $("ul#dropdown").slideUp("slow"); 
}); 


     }); 
</script> 
+0

Вы должны быть уверены, что остановите предыдущую анимацию, если используете ее как в mousePoint, так и в 'mouseleave', или можете создать раздражающую очередь анимации. '$ (" ul # dropdown "). stop(). slideUp (" slow ");' –

+0

Это работает, но как только я оставляю свой значок (#show_global_menu) и пытаюсь навести мой список (выпадающее меню ul #), list slidesUP. – Mark

Смежные вопросы