2015-12-14 13 views
8

Robię stronę dla kogoś i jestem całkiem nowy w jQuery (co prawdopodobnie nie pomaga). Strona potrzebowała menu rozwijanego, aby wyświetlić linki do galerii na liście, a nie wszystkie na pasku nawigacyjnym. Problem polega na tym, że za każdym razem, gdy umieszczam kursor nad elementem li, menu rozwijane ześlizguje się w dół, ale gdy umieściłem kursor nad rozwijanym menu, przesuwa się ono z powrotem.Nie można zsunąć rozwijanego menu jQuery

$(document).ready(function() { 
    $("li#navi-dropdown").hover(
    function() { 
     $('ul.nav-dropdown').slideDown('medium'); 
    }, 
    function() { 
     $('ul.nav-dropdown').slideUp('medium'); 
    } 
); 
}); 

Prawdopodobnie coś prostego, ale pomoc jest mile widziana. JSFiddle poniżej.

http://jsfiddle.net/6e87Lwkb/

+0

Dlaczego nie używasz interfejsu front-end, zamiast używać zwykłego html, css i jquery? – Mohamed

+0

http://codepen.io/firnasfaris10/pen/PZPVgG – Mohamed

Odpowiedz

1

rozważyć oddanie ul podmenu wewnątrz li, i przesunąć go. Nie zapomnij użyć .Zatrzymaj() też, tak jak jQuery nie kolejce animacje slajdów:

$('ul.nav-dropdown').stop().slideDown('medium'); 

See your updated fiddle here

+1

W przeciwieństwie do pozostałych, jeśli nie umieścisz wskaźnika myszy nad rozwijanym menu i po prostu wyjmiesz mysz z przycisku galerii, rozwijane menu zniknie, a tego właśnie chcę. Dziękuję wszystkim za odpowiedzi, ale ten wydaje się być najbardziej kompletny. – jammehcow

2

Jesteś toggeling zdarzenia w przewodnika mnie, trzeba to zrobić:

$(document).ready(function() { 
    $("li#navi-dropdown").on('mouseover',function() { 
    $('ul.nav-dropdown').slideDown('medium'); 
    }) 

    $("ul.nav-dropdown").on('mouseleave',function() { 
    $('ul.nav-dropdown').slideUp('medium'); 
    }); 
}); 

Mam również zaktualizowane skrzypce, sprawdź to teraz działa.

tu jest moje skrzypce:

http://jsfiddle.net/6e87Lwkb/7/

+0

@Mohamed Naprawdę nie rozumiem twojego komentarza (i ostatecznie w dół głosowania) sprawdziłeś skrzypce? Myślę, że o to właśnie OP prosił, żeby powiedział: "Problem polega na tym, że ilekroć unoszę się nad elementem li, ześlizguje się ono z dołu, ale kiedy umieściłem kursor nad rozwijanym menu, przesuwa się ono z powrotem.", I to jest właśnie to, zrobił. Zmieniłem także jego własne skrzypce w miejscu, w którym on właśnie zajął się tym wydarzeniem, dlatego myślisz, że moja odpowiedź jest nieprawidłowa. – Franco

+1

@Mohamed Może nie jest dobrą praktyką do zmiany oryginalnego skrzypce OP. Człowiek ciągle się tutaj uczy, Kiedy opowiem odpowiedź, nie będę już tego robił. Dziękujemy za aktualizację Twojego komentarza. Pozdrawiam :) – Franco

0

Spróbuj z tym kodem.

$(document).ready(function() { 
    $("li#navi-dropdown").hover(
    function() { 
    $('ul.nav-dropdown').slideDown('medium'); 
    }); 
    $(".nav-dropdown").mouseleave(
    function() { 
    $('ul.nav-dropdown').slideUp('medium'); 
    }); 
}); 
Powiązane problemy