2014-07-13 2 views
0

Je travaille sur un menu qui est comme un menu mobile.Je veux quand je clique sur l'image, il va glisser vers le bas et montrer le menu et lorsque vous cliquez sur cette image, il va glisser. et je veux aussi quand je clique n'importe où dans le corps, il va glisser aussi. Mon menu fonctionne quand je clique sur l'image et quand je clique sur le corps.comment montrer et cacher par jQuery quand cliquez sur un div et masquer quand cliquez sur le corps aussi

Mais ne peut pas glisser vers le haut du menu lorsque vous cliquez à nouveau sur l'image. C'est le problème.

J'utilise ce code

$(".service_detail_menu img").click(function(e){ 
    $(".service_detail_menu ul").slideDown(300); 
     e.stopPropagation(); 
}); 
$(document).click(function(){ 
    $(".service_detail_menu ul").slideUp(300); 
}); 

c'est mon lien. cliquez sur le 1er lisez plus. vous pouvez voir le menu.

http://goo.gl/gMeDgz

Merci

+1

Vous devez créer div qui remplit (superpositions) de document entier lorsque le menu est ouvert. Ensuite, ajoutez simplement le gestionnaire de clics à ce div et fermez le menu. – Hardy

+0

montrer html ou plus bon est de provie jsfiddle –

Répondre

0

Essayez ce code

$(".service_detail_menu img").click(function(e) { 
    if ($(this).hasClass('active')) { 
     $(".service_detail_menu ul").slideUp(300); 
     $(this).removeClass('active'); 
    } 
    else { 
     $(".service_detail_menu ul").slideDown(300); 
     $(this).addClass('active'); 
    } 
    }); 

    $(document).mouseup(function(e) { 
     if ($(e.target).parents(".service_detail_menu").length == 0) { 
      $(".service_detail_menu ul").slideUp(300); 
      $(".service_detail_menu img").removeClass('active'); 
     } 
    }); 
+0

salut, votre code fonctionne. mais quand je clique sur le corps, ça ne marche pas. J'ai besoin de cela a également travaillé quand je clique à l'extérieur de l'image de navigation. Où que je clique, il va glisser comme mon code actuel. –

+0

J'ai mis à jour le code, pouvez-vous s'il vous plaît vérifier. – amol

+0

merci beaucoup amol. ça marche super :) –

0

Utilisez: visible ou: caché pour vérifier si le ul est visible, puis faites glisser vers le haut s'il est visible.

$(".service_detail_menu img").click(function(e){ 
    $(".service_detail_menu ul:hidden").slideDown(300); 
    $(".service_detail_menu ul:visible").slideUp(300); 
    e.stopPropagation(); 
}); 

http://api.jquery.com/visible-selector/

Questions connexes