2015-12-14 15 views
8

Quindi sto creando un sito Web per qualcuno e sono abbastanza nuovo per jQuery (che probabilmente non aiuta). Il sito aveva bisogno di un menu a discesa per visualizzare i collegamenti alle gallerie in un elenco piuttosto che averli tutti nella barra di navigazione. Il problema è che ogni volta che si posiziona il puntatore del mouse sopra l'elemento li, il menu a discesa scorre verso il basso, ma quando si passa con il mouse sopra il menu a discesa, si torna indietro.Impossibile mantenere jQuery dropdown down down

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

Probabilmente qualcosa di semplice, ma l'aiuto è ben accetto. JSFiddle sotto.

http://jsfiddle.net/6e87Lwkb/

+0

Perché non usi un framework di front end invece di usare html, css e jquery? – Mohamed

+0

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

risposta

1

considerare di mettere il vostro sottomenu ul all'interno del vostro li, e riposizionarlo. Non dimenticare di utilizzare .Stop() anche, in modo da jquery non viene accodato le diapositive animazioni:

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

See your updated fiddle here

+1

A differenza degli altri, se non lo fai, tieni il mouse sopra il menu a discesa e togli il tuo mouse dal pulsante della galleria, il menu a discesa scompare ancora, che è quello che voglio. Grazie a tutti per le vostre risposte, ma questa sembra essere la più completa. – jammehcow

2

Stai toggeling l'evento nel gestore di me, è necessario fare questo:

$(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'); 
    }); 
}); 

Ho anche aggiornato il vostro violino, check it out ora funziona.

qui è il mio violino:

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

+0

@Mohamed Davvero non capisco il tuo commento (e alla fine il voto negativo) hai controllato il violino? Penso che questo fosse ciò che l'OP chiedeva dicendo: "Il problema è che ogni volta che si posiziona il cursore sopra l'elemento li il cursore si sposta verso il basso, ma quando si posiziona il puntatore del mouse sull'elenco a discesa, torna a scorrere". fatto. Ho cambiato anche il suo personale ruolo in cui stava solo toccando l'evento, ecco perché stai pensando che la mia risposta non sia corretta. – Franco

+1

@Mohamed Forse non è una buona pratica per cambiare il violino dell'OP originale. L'uomo continua ad imparare qui, quando invierò una risposta non lo farò più. Grazie per aver aggiornato il tuo commento. Saluti :) – Franco

0

prova con questo codice.

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