2010-09-20 5 views
0

J'ai 3 menus qui utilisent ce .toggle et quand je passe d'un menu à l'autre, il faut un deuxième clic pour que le menu se referme. Comment faire pour que la seconde fonction s'arrête si un autre menu est affiché?Menu arrête la deuxième fonction de tirer sur un autre élément en utilisant la même fonction

$(".dd").toggle(function() { 
     $("ul a", this).click(function(e) { 
     e.stopPropagation(); 
     }); 
     $(".contextMenu").hide(); 
     $("ul", this).show();  
    }, 
    function() { 
     $("ul", this).hide(); 
    } 
); 

Répondre

0

Je me suis mis à travailler comme je le voulais. Merci à ce fil jQuery Toggle State

$(".dd").click(function() { 
    $("ul", ".dd").not(this).hide(); 
    $("ul", this).toggle(); 
    }); 
    $(".wrapper").click(function() { 
    $("ul", ".dd").hide(); 
    }); 
0

Je pense au lieu d'un .toggle() vous voulez juste un .click() ici, comme ceci:

$(".dd ul a", this).click(function(e) { 
    e.stopPropagation(); 
}); 
$(".dd").click(function() { 
    $(".contextMenu").hide(); 
    $(this).find("ul").toggle(); 
    //possibly to hide others: $(".dd").not(this).find("ul").hide(); 
}); 
Questions connexes