IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

onClick universel sur mobile et PC


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 25
    Par défaut onClick universel sur mobile et PC
    Bonjour
    Je sais que ce sujet a déjà été abordé à plusieurs endroits mais jamais "complètement" et il y a de tout, j'aimerai simplement savoir, en 2021, avec les principaux navigateurs web ET mobile, qu'elle est le meilleur moyen de faire un onclick ?

    1) Binder l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#truc').click(function() { });
    2) Binder le body en reliant l'objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('body').on('click', '#truc', function() { });
    3) Binder l'objet en lui attribuant des trucs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#truc').bind('touchstart tap click', function(){ });
    4) Binder le href direct

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" title="La La La" id="truc" onClick="do();">test</a>
    Sachant que, sur mobile j'ai l'impression que le touchstart ou tap parfois se déclenche deux fois ou ne se déclenche pas (notamment iOS).

    Quelle est la meilleure méthode et la plus universelle ?

    Merci par avance !

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    Déjà, un peu de lecture de la doc :

    As of jQuery 3.0, .bind() has been deprecated. It was superseded by the .on()

    Ensuite, ça peut dépendre du contexte.

    • 1) $('#truc').click(function() { }); peut aussi s'écrire : $('#truc').on('click', function() { });.
    • 2) $('body').on('click', '#truc', function() { }); : c'est de la "délégation".
      Important surtout si l'élément (noeud) '#truc' n'est pas présent dans le DOM au chargement de la page (s'il est créé dynamiquement, via Ajax ou autre).
      l'intérête ici, c'est que la balise <body> est forcément déjà dans le DOM .
    • 3) on oublie (cf ci-dessus)
    • 4) si vraiment on ne peut pas faire autrement. Sinon, à éviter.

Discussions similaires

  1. Prise en compte onClick sur Mobile
    Par aikaik dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2019, 18h09
  2. Graphisme pour un jeux java sur mobile
    Par marocleverness dans le forum Java ME
    Réponses: 4
    Dernier message: 15/03/2007, 15h53
  3. 3D sur mobile avec j2me
    Par chabfive dans le forum API graphiques
    Réponses: 1
    Dernier message: 10/11/2006, 09h28
  4. [FLASH 8] Application sur mobile
    Par dom_dev dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 07/09/2006, 11h02
  5. creation d'une appli bluetooth stereo sur mobile
    Par diaboli-k dans le forum Java ME
    Réponses: 1
    Dernier message: 01/08/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo