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

JavaScript Discussion :

Evénement "parasite" javascript ?


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Evénement "parasite" javascript ?
    Bonjour à toutes et tous,

    Voilà, c'est probablement une question de débutant mais je n'ai pas réussi à résoudre le pb...
    En fait c'est très simple, j'ai monté une petite appli web pour tablette/mobile en php pour un jeu de piste les enfants de l'école.

    J'ai une carte (osm) sur laquelle j'ai placé des marqueurs.
    Avec openlayers, c'est hyper simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    marker.events.register("touchstart", marker,cliquemys);
    cliquemys est la fonction qui est appelée quand on "tap" sur le marqueur.
    (J'ai mis "touchstart" parce que "click" ne marche pas avec openlayers sur les tablettes et mobile (eh oui...) et "tap" n'existe pas non plus avec openlayers, bizarre mais bon...)

    Dans la fonction cliquemys, je fais un lien vers une page web simplement avec window.location.href="toto.php"


    Jusque là que du très très simple et ça marche bien.

    Sauf que, toto.php contient des liens html de base (href..?),et que le "tap" effectué sur le marqueur de la carte se répercute sur les href de toto.php et donc toto.php est zappé vers la page cible du href.

    En résumé: j'ai
    marqueur --> toto.php --> toto2.php.
    Quand on "tap" sur le marqueur toto.php est zappé et on se retrouve sur toto2.php On a donc 1 événement --> deux directions.......

    Alors là, je suis perdu.
    Savez-vous d'où ça vient et se que je pourrais faire pour corriger ça ?

    Merci à toutes et tous pour vos réponses
    Cordialement
    fmdr

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Pas évident de se figurer le problème avec ces histoires de toto, mais essaie quand même ça :

    1) rajouter dans ta fonction clickmys :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function clickmys(event){
       event.preventDefault();
       // le reste de ton code clickmys
    }
    2) si le 1) ne marche pas, essaie de changer l'évènement touchstart en touchend

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Génial, ça marche !!!

    Je suis allé voir ce que faisait preventDefault, je ne connaissais pas.(En même temps, je débute).

    Un grand merci pour cette solution qui marche à merveille !

    Cordialement
    fmdr

    .

+ Répondre à la discussion
Cette discussion est résolue.

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