web-dev-qa-db-fra.com

onClick ne fonctionne pas sur mobile (tactile)

Ok, ce que je cherche à faire, c’est de faire glisser une div lorsque l’utilisateur clique sur un élément de la liste.

Le problème est que j'utilise Selectric https://github.com/lcdsantos/jQuery-Selectric qui convertit une zone de sélection en liste non ordonnée. Ainsi, lorsque l'utilisateur clique sur un élément de la liste généré par la source, je souhaite qu'un div glisse vers le bas.

Sur le safari mobile (iOS7), l'interface utilisateur de la zone de sélection est la même que celle de l'interface standard.

Quelle est la meilleure pratique en matière d’onClick pour les appareils mobiles?

JQuery de base:

$(window).load(function() {
        $('.List li').click(function() {
            $('.Div').slideDown('500');
        });
    });

Vous pouvez voir un exemple de travail ICI (recherche avancée dans la barre latérale)

Merci.

30
Dale

mieux utiliser touchstart événement avec .on() méthode jQuery:

$(window).load(function() { // better to use $(document).ready(function(){
    $('.List li').on('click touchstart', function() {
        $('.Div').slideDown('500');
    });
});

Et je ne comprends pas pourquoi vous utilisez la méthode $(window).load() car elle attend que tout le contenu d’une page soit chargé, ce qui est généralement lent, alors que vous pouvez utiliser la méthode $(document).ready() n'attendez pas que chaque élément de la page soit chargé en premier.

80
Jai

vous pouvez utiliser au lieu de cliquer:

$('#whatever').on('touchstart click', function(){ /* do something... */ });
8
Ram Patidar