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 :

Variable javascript dans une balise <li>


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut Variable javascript dans une balise <li>
    Bonjour,

    J'utilise la g�olocalisation html5 pour d�terminer l'emplacement de l'utilisateur sur une image.

    Le 1er script bas� sur l'API google :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function successCallback(position){
        var LatM = position.coords.latitude;
        var LongM = position.coords.longitude;
        document.getElementById("LatM").innerHTML = position.coords.latitude;
        document.getElementById("LongM").innerHTML = position.coords.longitude;
    };
    J'obtiens bien la longitude et latitude de l'utilisateur :


    Mon 2eme script est une r�gle de 3 pour convertir les coordonn�es g�ographique en pixel

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function calcul() {
    	var Lmarker = ResL * imgwidth;    // résultat en pixel pour placer le Marker sur l'image.
    	var Hmarker = ResH * imgheight;
    	document.getElementById("repereLpos").innerHTML = Lmarker;
    	document.getElementById("repereHpos").innerHTML = Hmarker;
    }
    J'obtiens bien la hauteur et la largeur en pixel :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <p>
        Point.Largeur : <span id="repereLpos"></span><br>
        Point.Hauteur : <span id="repereHpos"></span><br>
    </p>

    J'aimerais reporter repereLpos & repereHpos dans la page html qui affiche le marqueur sous cette forme :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!-- MARQUEUR POSITION --> 
    <ul data-markers="">
    	<li
    	  data-marker-type=tooltip
    	  data-show-content=yes
    	  data-reg-point=centerbottom 
    	  data-marker-normal-state-path=marker1.png 
    	  data-marker-selected-state-path=marker1-rollover.png 
    	  data-marker-left=          <--  ici repereLpos  -->
    	  data-marker-top=          <--  ici repereHpos  -->
    	  data-marker-width=28
    	  data-marker-height=36 
    	  data-show-after-zoom-factor=0>
    		<div class="InfoDiv">Vous etes ici</div>
    	</li>
    </ul>

    Je vois pas comment inserer / appeler du javascript dans la partie html.

    La balise <li> n'accepte pas d'autre balise (<script type="text/javascript"> ...... / data-marker-left id="reperePos) "

    Avez vous une solution ?
    Merci d'avance

  2. #2
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Bonjour , comme indiqu� dans ton exemple, pass� par les attributs data :

    au moment de construire la liste ( en htm ) tu poses les donn�e

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    data-marker-left="XXX"
    data-marker-top="YYY"
    ou en js , tu r�cup�res le li dont tu as besoins puis tu ajoutes des attributs data :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    monelement.dataset.marker-left = "XXX";
    monelement.dataset.marker-top = "YYY";
    dataset n'�tant pas g�r� par tous les navigateurs, tu dois v�rifier si cette propri�t� existe, sinon :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    // Modification d'une valeur
    monelement.setAttribute('data-marker-left') = 'XXX';
    // Récupération de la valeur
    var long = monelement.getAttribute('data-marker-left');
    cordialement

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    Merci pour ton aide !

    element.dataset. est en effet une balise que je ne connais pas. J'ai lu pas mal de chose sur internet histoire d'en savoir plus.
    �a a l'air simple et pratique mais je vois pas comment l'adapter dans mon cas, les deux scripts sont sur la m�me page, j'ai essay� en me basant sur ton exemple... sans r�sultat.

    pour r�sumer, je d�clare mon <li> le plus simplement possible :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <li
    	data-marker-type="tooltip"
    	data-show-content="yes"
    	data-reg-point="centerbottom"
    	data-marker-normal-state-path="marker1.png"
    	data-marker-selected-state-path="marker1-rollover.png"
    	data-marker-left="Lmarker"
    	data-marker-top id="repereHpos"
    	data-marker-width="28"
    	data-marker-height="36"
    	data-show-after-zoom-factor="0"
    >
    	<div class='InfoDiv'>Vous etes ici</div>
    </li>


    Et ensuite dans un js dans ma page, j�appelle la ligne data.marker.left / .top avec les variables de mon marqueur.

    J'oublie une manip, est ce qu'il faut pointer le <li id="" ??

    Merci encore une fois pour ton aide

  4. #4
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    J'oublie une manip, est ce qu'il faut pointer le <li id="" ??
    pour atteindre un �l�ment il faut effectivement que l'on puisse le retrouver et une des solutions c'est la r�cup�ration via son ID.

    Une question quand m�me quel est l'int�r�t de stocker les informations dans un �l�ment DOM et pas directement dans un objet javascript.

  5. #5
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    Merci pour ton aide.

    Je ne peux pas r�pondre � ta question, une partie du script �tait d�j� en place avant que je reprenne la main...

    Pour le moment, mon marker ne bouge pas. Je pense y �tre pour quelque chose. :-(

    Mon script de calcul me donne �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    var Lmarker = ResL * imgwidth;    // résultat en pixel pour placer le Marker sur l'image.
    var Hmarker = ResH * imgheight;
     
    //alert("LMarkeur  : " + Hmarker);
    //alert("HMarkeur : " + Lmarker);
     
    document.getElementById("repereLpos").innerHTML = Lmarker;
    document.getElementById("repereHpos").innerHTML = Hmarker;
     
    alert("Largeur : " + Lmarker);
    alert("Hauteur : " + Hmarker);
    ...
    Mon marker est affich� comme �a :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <ul data-markers="" id="coo">
         <li       data-marker-type="tooltip"
    		data-show-content="yes"
    		data-reg-point="centerbottom"
    		data-marker-normal-state-path="marker1.png"
    		data-marker-selected-state-path="marker1-rollover.png"
    		data-marker-left="xx"
    		data-marker-top="yy"
    		data-marker-width="28"
    		data-marker-height="36"
    		data-show-after-zoom-factor="0"
         >
              <div class='InfoDiv'>Vous etes ici</div>
         </li>
    </ul>

    Et c'est l� que �a va pas :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <script language="javascript">
    function marker() {
     
         var element = document.getElementById('coo');
     
         //Récupérer une valeur :
         //var left = element.dataset.marker.left;
         //var top = element.dataset.marker.top;
     
         //Modifier une valeur
         element.dataset.marker.left = "xx";
         element.dataset.marker.top = "yy";
         //var Lmarker = monelement.getAttribute('data-marker-left');
     
         element.dataset.marker.left = "repereLpos";    //repereLpos ou Lmarker ??
    }
    </script>

  6. #6
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653

  7. #7
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    Merci pour le lien, j'ai fait plusieurs essais dont celui l� :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <ul data-markers="" >
    	<li id="coo"
    		data-marker-type="tooltip"
    		data-show-content="yes"
    		data-reg-point="centerbottom"
    		data-marker-normal-state-path="marker1.png"
    		data-marker-selected-state-path="marker1-rollover.png"
    		data-marker-left="400"    < -- position de mon marqueur depuis le haut gauche de mon image
    		data-marker-top="200"    < -- idem depuis le haut de mon image
    		data-marker-width="28"
    		data-marker-height="36"
    		data-show-after-zoom-factor="0"
            >
    	<div class='InfoDiv'>Vous etes ici</div>
    	</li>
    </ul>


    Et le script pour agir sur data-marker-left et top :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var listeLi,monelement;
     
    //listeLi =  document.getElementById('coo');
    var monelement = document.getElementById('coo');
     
    //recuperation des valeurs
    var xx = monelement.getAttribute("data-marker-left")
    var yy = monelement.getAttribute("data-marker-top")
     
    //modifications des valeurs
    monelement.setAttribute("data-marker-left") = "300";
    monelement.setAttribute("data-marker-top") = "150";
    �a vous semble correct comme syntaxe ?

  8. #8
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    La premi�re chose incorrecte, c'est de mettre une div dans un <ul> !
    Une liste ne peut contenir que des balises <li> comme enfant.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  9. #9
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    compris, j'utilise le plug in Megazoom Image Viewer pour afficher ma carte.
    C'est une partie de leur code que j'ai post� (la partie Liste).

  10. #10
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    //modifications des valeurs 
    monelement.setAttribute("data-marker-left") = "300";
    monelement.setAttribute("data-marker-top") = "150";
    Ton utilisation de la m�thode setAttribute est incorrecte, objet.setAttribute( nom, valeur);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    //modifications des valeurs
    monelement.setAttribute("data-marker-left", "300");
    monelement.setAttribute("data-marker-top", "150");
    tu pourrais �galement passer par les dataset mais en prenant garde � la fa�on de les r�cup�rer.

  11. #11
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    G�nial, �a fonctionne bien !! Merci

    Il est possible d'appeler une variable ici � la place des chiffres ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    //modifications des valeurs 
    monelement.setAttribute("data-marker-left") = "300";
    monelement.setAttribute("data-marker-top") = "150";
    Y a t'il une syntaxe particuli�re pour appeler les variables qui sont dans une fonction en entete de ma page ??

    Merci pour votre aide

  12. #12
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Il est possible d'appeler une variable ici � la place des chiffres ?
    un petit essai ne t'as pas tent�

    [EDIT]
    ne pas tenir compte de la proposition ci dessous
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //modifications des valeurs 
    var ma_variable_1 = "300",
        ma_variable_2 = "150";
    monelement.setAttribute("data-marker-left") = ma_variable_1;
    monelement.setAttribute("data-marker-top")  = ma_variable_2;

  13. #13
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    J�appr�cie vraiment ton aide.

    Si j'ai bien essay� de faire des test mais l� j'ai l'impression de ramer comme jamais alors que c'est la derni�re �tape du projet.

    Je mets en place ta m�thode demain matin et reviens certainement vite....

    Merci pour ton aide !

  14. #14
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    Bonjour,

    Je viens d'essayer avec ta syntaxe, �a ne marche que si je rentre des chiffres ici :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    monelement.setAttribute("data-marker-left", "150");
    monelement.setAttribute("data-marker-top", "300");
    J'ai l'impression que le probl�me vient du fichier javascript qui g�re l'affichage de l'image et des marqueurs...

    A part �a, je vois pas pourquoi je ne pourrais pas indiquer dans ma liste, les variables d'une fonction (dans l'en t�te de ma page)...

  15. #15
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    j'ai recopier une grosse ANERIE signal�e au post #10 qui plus est re
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //modifications des valeurs 
    var ma_variable_1 = "300",
        ma_variable_2 = "150";
    monelement.setAttribute("data-marker-left", ma_variable_1);
    monelement.setAttribute("data-marker-top", ma_variable_2);

  16. #16
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Vaucluse (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Webdesigner
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : Avril 2014
    Messages : 24
    Par d�faut
    Je pense que le probl�me vient du fichier .js du plug in Megazoom qui gere l'affichage de la carte et des marker :

    Vous pouvez me dire si vous voyez quelque chose qui pourrait emp�cher l'affichage de variables (en fait autre chose que des nombres) dans cette portion de code :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    m=FWDUtils.hasAttribute(h,"data-marker-left");if(!m){r.showMarkerError("data-marker-left",b);return}
    m=FWDUtils.hasAttribute(h,"data-marker-top");if(!m){r.showMarkerError("data-marker-top",b);return}
     
    m=FWDUtils.hasAttribute(h,"data-marker-width");if(!m){r.showMarkerError("data-marker-width",b);return}m=FWDUtils.hasAttribute(h,"data-marker-height");if(!m){r.showMarkerError("data-marker-height",b);return}m=FWDUtils.hasAttribute(h,"data-show-after-zoom-factor");if(!m){r.showMarkerError("data-show-after-zoom-factor",b);return}l.type=FWDUtils.getAttributeValue(h,"data-marker-type");f=l.type=="link"||l.type=="tooltip"||l.type=="infowindow";if(!f){r.showMarkerTypeError(l.type,b);return}if(FWDUtils.hasAttribute(h,"data-show-content")){if(FWDUtils.trim(FWDUtils.getAttributeValue(h,"data-show-content"))=="no"){y=false}else{y=true}}else{y=true}l.normalStatePath_str=FWDUtils.trim(FWDUtils.getAttributeValue(h,"data-marker-normal-state-path"));l.selectedStatePath_str=FWDUtils.trim(FWDUtils.getAttributeValue(h,"data-marker-selected-state-path"));l.toolTipLabel=FWDUtils.getAttributeValue(h,"data-tool-tip-label")||undefined;
     
    l.markerX=(FWDUtils.getAttributeValue(h,"data-marker-left"));if(isNaN(l.markerX))l.markerX=0;
    l.markerY=(FWDUtils.getAttributeValue(h,"data-marker-top"));if(isNaN(l.markerY))l.markerY=0;
    Merci !

Discussions similaires

  1. R�ponses: 1
    Dernier message: 20/04/2007, 09h12
  2. recuperer la valeur d'une variable javascript dans une jsp
    Par johnnywalker dans le forum Servlets/JSP
    R�ponses: 3
    Dernier message: 04/03/2007, 19h45
  3. R�cup variable Javascript dans une autre page
    Par michelle1000 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 25/09/2006, 06h58
  4. r�cup�rer une variable javascript dans une variable java
    Par tx dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 06/07/2006, 17h55
  5. Recuperer variable Javascript dans une variable Java
    Par drizztoli dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 22/09/2005, 14h58

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