Reputation: 211
Please, have a look at this: http://jsfiddle.net/2bU3R/3/
When I hover over the Magazine list, the first dropdown doesn't show.
I want it to work for many dropdowns.
$(document).ready( function(){
$('#sub-menu-1').hover( function(event){
event.stopPropagation();
$(".sub-menu-1-open").slideDown("fast");
});
$('.sub-menu-1-open').mouseleave( function(){
$('.sub-menu-1-open').slideUp("fast");
});
$('#sub-menu-2').hover( function(event){
event.stopPropagation();
$(".sub-menu-2-open").slideDown("fast");
});
$('.sub-menu-2-open').mouseleave( function(){
$('.sub-menu-2-open').slideUp("fast");
});
});
Upvotes: 0
Views: 353
Reputation: 9348
UPDATE #2
If you keep the HTML markup the way it is now, this should work.
All the jQuery (Javascript)
you need is this:
$(document).ready(function () {
$("div[class^='sub-menu'] .inner").mouseleave(function () {
hideMenu();
});
$(".list-inline li a").mouseenter(function () {
hideMenu();
$("." + $(this).parent().attr("id") + "-open").stop().slideDown();
});
});
var hideMenu = function () {
$("div[class^='sub-menu']").stop().slideUp();
};
Demo: http://jsfiddle.net/2bU3R/22/
Upvotes: 1
Reputation: 628
You can try this make it somewhat a liitlebit more dynamic : http://jsfiddle.net/2bU3R/12/
$(document).ready( function(){
$('.list-inline li').hover(function(){
var div = $(this).attr('id');
$('.'+div+'-open').slideToggle('fast');
});
});
This basically runs itselfs.
Upvotes: 0
Reputation: 4273
Use slideToggle()
$(document).ready( function(){
$('#sub-menu-1').hover( function(event){
event.stopPropagation();
$(".sub-menu-1-open").slideToggle("fast");
});
$('.sub-menu-1-open').mouseleave( function(){
$('.sub-menu-1-open').slideToggle("fast");
});
$('#sub-menu-2').hover( function(event){
event.stopPropagation();
$(".sub-menu-2-open").slideToggle("fast");
});
$('.sub-menu-2-open').mouseleave( function(){
$('.sub-menu-2-open').slideToggle("fast");
});
});
Upvotes: 1