2017-09-19 5 views
1

Fondamentalement, j'ai ce menu mobile Link (s'il vous plaît redimensionner la fenêtre pour voir le menu mobile). Le problème est que sur mobile, les utilisateurs glissent généralement vers le bas pour voir le contenu. Menu principal sur mobile Tout moyen d'activer le "clic" du menu, lors de la libération du doigt - au lieu de la première touche? Le problème est que si vous faites défiler et que vous appuyez sur "menu", cela ouvre le menu à la place des parchemins. Tous les autres liens sur la page sont bien - ils ne "cliquent" que lorsque vous relâchez votre doigt (au lieu de toucher au premier contact). Ainsi, si les utilisateurs touchent accidentellement le bouton "Menu", le menu s'ouvre. Je veux montrer le menu SEULEMENT après que l'utilisateur a touché et relâché le bouton de menu. Pour ce faire, j'utilise ce code -Début de l'événement après que TouchEnd se termine

jQuery(document).ready(function(){ 
    if (window.Touch) { 
    jQuery('#sidr').bind('touchstart', function(e) { 
     e.preventDefault(); 
    }); 
    jQuery('#sidr').bind('touchend', function(e) { 
     jQuery(this).trigger('click'); 
    }); 
    } 
}); 

Mais ça ne fonctionne pas, des suggestions?

Je viens de remarquer la preventDefault ne fonctionne pas

jQuery(document).ready(function(){ 
jQuery('#sidr').click(function(e){ 
    e.preventDefault(); 
    }) 
}); 

Répondre

1

Essayez d'utiliser le jquery mobile tap handler. Il ne se déclenchera qu'après un événement tactile terminé (c'est-à-dire sur "toucher"). Vous pouvez être encore plus restrictif et utiliser le taphold handler, qui est essentiellement une touche longue.

+0

Essayé à la fois de cette combinaison - https://hastebin.com/dipemijuyo.js ne pouvait toujours pas le faire fonctionner. Désolé je suis amateur quand il s'agit de JS –

+0

la meilleure façon de s'améliorer est de lire le code et la documentation, je sais que c'est ennuyeux comme l'enfer mais ça marche. Vous ne devriez pas utiliser .bind, vous devriez utiliser .on tout ce dont vous avez besoin est $ (element) .on ('tap', function) –

+0

Merci, je vais essayer à nouveau avec votre suggestion –