2017-06-19 3 views
0

L'URL est http://development-client-server.com/dreamscience/product-category/models/focus/focus-st/focus-st225-mk2/ et le problème est avec le bouton bleu qui dit "Filtrer les produits". Si vous l'ouvrez sur mobile, cliquez sur "Modèle" il s'ouvre et se ferme très bien. Pareil pour les autres. Cependant, si vous laissez le "Modèle" ouvert, puis essayez d'en ouvrir un autre, dites "Catégorie", les boutons ne fonctionnent plus.jQuery afficher/masquer bascule arrête de travailler sur le mobile après les premiers feux

J'ai essayé toggleClass(), toggle(), slideToggle() et directement show() et hide() et la recherche de tonnes de variations différentes. J'ai également essayé de changer "clic" pour "clic de clic" et juste en utilisant "touchstart" sans changements.

Fonctionne très bien sur un ordinateur normal avec l'écran réduit à la taille du mobile. Cela ne fonctionne pas sur iPhone Safari exécutant la dernière version.

est ici la version actuelle du script:

function mobileFiltering() { 
 
    $(document).on("click", ".prdctfltr_regular_title", function() { 
 
    var status = $(this).hasClass('active'); 
 
    if (status) { 
 
     $(this).removeClass('active'); 
 
     $(this).next().hide(); 
 
    } else { 
 
     $(this).addClass('active'); 
 
     $(this).next().show(); 
 
    } 
 
    }); 
 
} 
 

 
if ($(window).width() < 975) { 
 
    mobileFiltering(); 
 
} else { 
 
    $('.prdctfltr_regular_title').unbind(); 
 
} 
 

 
$(window).resize(function() { 
 
    if ($(window).width() < 975) { 
 
    mobileFiltering(); 
 
    } else { 
 
    $('.prdctfltr_regular_title').unbind(); 
 
    } 
 
});

aussi ce qui est encore plus étrange, est que si je retire le spectacle/bascule cacher et juste avoir la fonctionnalité removeClass/addClass, ça fonctionne bien.

J'apprécierais toute aide à ce sujet, car il semble être un problème avec tous les changements que je fais dans le mobile.

+0

Vous avez une erreur jQuery: TypeError: a.indexOf n'est pas une fonction – Korgrue

+0

Je ne pense pas que ce soit le problème (c'est lié à autre chose) - cela fonctionne bien sur le bureau et le premier feu? –

+0

Vous obtenez également une deuxième erreur si vous fermez le filtre et essayez de sélectionner un filtre différent. products.offset (...) n'est pas défini – Korgrue

Répondre

1

Cela semble être causé par des événements tirant trop de fois via la configuration de délégation d'événement que vous avez, ma recommandation serait d'arrêter tous les autres événements en utilisant stopPropagation.

Comme si:

function(e) { 
    e.stopPropagation(); 
    e.stopImmediatePropagation(); 

Hope this helps!

+0

merci merci beaucoup! –