2016-12-09 1 views
0

J'ai le site réactif suivant et je vais avoir un problème avec le menu de navigation mobile:slideDown & slideUp numéro

http://www.endeavor.cl/

Lorsque vous redimensionnez la fenêtre ou le charger dans un appareil mobile, vous avez un menu avec des éléments de sous-menu avec un effet de glissement qui vous montre les éléments du sous-menu chaque fois que vous cliquez dessus et, si vous cliquez à nouveau dessus ou cliquez ailleurs, l'élément du sous-menu se cachera l'effet Le problème est que lorsque vous redimensionnez la fenêtre et que vous cliquez à nouveau sur les éléments du sous-menu, ils s'affichent maintenant et se cachent instantanément, comme s'ils exécutaient les 2 étapes sans attendre un second clic.

$(window).on('load resize', function() { 
 
    if ($(window).width() >= 1000){ 
 
     $("#menu-top").removeClass(); 
 
     $("#menu-top").addClass("desktop"); 
 
    }else{ 
 
     $("#menu-top").removeClass(); 
 
     $("#menu-top").addClass("touch"); 
 
     $("#menu-top.touch .menu-item-has-children a").addClass("primer-boton").css('cursor','pointer'); 
 
     $("#menu-top.touch .sub-menu a").removeClass(); 
 
     $("#menu-top.touch .primer-boton").removeAttr("href"); 
 
     $('#menu-top.touch .menu-item-has-children > .sub-menu').parent().click(function() { 
 
     var submenu = $(this).children('.sub-menu'); 
 
     if ($(submenu).is(':hidden')) { 
 
     $(submenu).slideDown(200); 
 
     } else { 
 
     $(submenu).slideUp(900); 
 
     } 
 
     }); 
 
     
 
    } 
 

 
    });

Répondre

0

C'est parce que chaque fenêtre redimensionnez votre code joindre écouteur d'événement nouveau. Il se déclenche donc deux fois après le redimensionnement. Tout d'abord montrer le menu et ensuite le cacher.

Avez-vous vraiment besoin de cet événement resize dans on? Peut-être que load répondra à vos attentes

+0

Si je retire l'événement de redimensionnement, la version mobile du menu ne sera pas affichée. –

+0

Non! tu as raison! Je n'ai pas vraiment besoin de l'événement de redimensionnement, parce que dans un téléphone, la version mobile est déjà chargée, donc je n'ai pas du tout besoin de l'événement de redimensionnement. Résolu. –