2010-12-31 4 views
0

Я смог удалить jQuery, однако, я не могу заставить его оставаться расширенным, когда одна из дочерних ссылок перевернулась.jQuery Dropdown

Код:

<li> 
    <a onmouseover="$('.dropdown-1').slideDown('medium');" href="/hosting">Why Veoloo</a> 
     <ul class="dropdown-1"> 
     <li onmouseout="$('.dropdown-1').slideUp('medium');"><a href="#">The Reasons (15)</a></li> 
     <li onmouseout="$('.dropdown-1').slideUp('medium');"><a href="#">Customer Testimonials</a></li> 
     <li onmouseout="$('.dropdown-1').slideUp('medium');"><a href="#">Our Support Scope</a></li> 
     </ul> 
    </li> 

ответ

2

HTML:

<li id="menu"> 
    <a href="/hosting">Why Veoloo</a> 
    <ul class="dropdown-1"> 
    <li><a href="#">The Reasons (15)</a></li> 
    <li><a href="#">Customer Testimonials</a></li> 
    <li><a href="#">Our Support Scope</a></li> 
    </ul> 
</li> 

JavaScript:

$(function(){ 
    $('.dropdown-1').hide(); 
    $('#menu').hover(function(){ 
     $('.dropdown-1').slideDown('medium'); 
    }, function(){ 
     $('.dropdown-1').slideUp('medium'); 
    }); 
}) 

пример:

http://jsfiddle.net/gurPn/1/

[EDIT]: Обновленный, чтобы использовать метод парения (JQuery) и триггерhove от родительского контейнера (это позволяет захватить событие mouseleave только на контейнере, давая желаемый эффект снижения).

+0

Мне понравился ваш ответ, но: я заметил, что меню не сдвигается, если вы оставляете тег «Why Veoloo» вверху или справа. Он будет закрыт, только если вы действительно перейдете к одному из пунктов меню. –

+0

проблема решена, спасибо @Julian – Gabriel

0

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

<script type="text/javascript"> 
$(document).ready(function(){ 

    $(".sidebar").mouseenter( 
     function pl(){ 
       $(".sidebar").stop().animate({width: "184px",left:"760px"},750,"linear"); 
} 
    ); 
    $(".sidebar").mouseleave( 
      function pl2(){ 
       $(".sidebar").stop().animate({left: "900px",width: "45px"},750,"linear"); 
      } 
    ); 

}); 
</script> 

Интернет пример на http://sdfreelance.vistapanel.net/

Update

Вам нужно будет поместить функцию первого LI

<li id="dropdown"> 
    <a href="/hosting">Why Veoloo</a> 
    <ul class="dropdown-1"> 
     <li ><a href="#">The Reasons (15)</a></li> 
     <li ><a href="#">Customer Testimonials</a></li> 
     <li ><a href="#">Our Support Scope</a></li> 
    </ul> 
</li> 


    <script type="text/javascript"> 
    $(document).ready(function(){ 

    $("#dropdown").mouseenter( 

Использование OnMouseOver непосредственно на тег будет вызывать ошибка, если все необходимые сценарии не загружены. b прежде чем мышь перейдет через меню.

+0

Спасибо! Прекрасно работает! – Phil