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 :

Setattribute


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut Setattribute
    Bonjour a tous tout d'abord

    Voila je lutte sur un truc qui ne pose aucun probleme sur firefox mais qui sur ie ne fonctionne absolument pas.

    Avant de vous expliquer la cause de mon probleme voici le code (assez court) :

    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
    18
    19
    20
    21
    22
    23
     
    <html>
        <head>
            <title>test javascript</title>
                <script language="javascript">
                function	assignFct()
                {
                    eachDiv	= document.body.getElementsByTagName("div");
                    for (i = 0; i < eachDiv.length; i++)
                    {
                        eachDiv[i].setAttribute("onclick", "alert('" + i + "')");
                    }
                }
                </script>
        </head>
        <body>
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <span onclick="assignFct();">test</span>
        </body>
    </html>
    En faite sur firefox apres avoir cliqué sur le span les fonctions sont bien assignés sur chaque div avec la valeur du i (dans le for) mais pas sur ie :'(

    Qelqu'un aurait une petite idée car j'en aurais besoin pour assigné des valeurs sur chaque image dans un script de gallerie pour que lors de la generation chaque image est une valeur de click particuliere ! Voila Je vous remercie par avance !!!

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    Pour ajouter un evenement dynamiquement à un element, il est preféreable de passer par des fontions prévues à cet effet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (el.addEventListener){ //firefox
      el.addEventListener('click', modifieTexte, false);
    } else if (el.attachEvent) { //IE
      el.attachEvent('onclick', modifieTexte);
    }
    dans ton code cela donne :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    <html>
        <head>
            <title>test javascript</title>
                <script language="javascript">
                function	assignFct()
                {
                    eachDiv	= document.body.getElementsByTagName("div");
                    for (i = 0; i < eachDiv.length; i++)
                    {
                         if (eachDiv[i].addEventListener) //firefox
                            eachDiv[i].addEventListener('click', function(){alert(i)}, false);
                         else if (eachDiv[i].attachEvent) //IE
                            eachDiv[i].attachEvent('onclick', function(){alert(i)});
                    }
                }
                </script>
        </head>
        <body>
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <span onclick="assignFct();">test</span>
        </body>
    </html>
    Dans la fonction à la place de "alert(i)" tu mets ton traitement.

    Cordialement.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut
    La methode est bonne le gros soucis c'est que la valeur du onclick vaut la derniere valeur du for :S Ce que je souhaite faire c'est lui donné la valeur dynamiquement du i au moment de l'assignation. Je sais pas si tu vois ce que je veux dire ?

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    Essai de rajouter dans ta boucle for ca :

    et tu fait un alert de index dans la fonction et non pas de i, pour voir.

    Dis moi quoi.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function	assignFct()
    {
    	eachDiv	= document.body.getElementsByTagName("div");
    	for (i = 0; i < eachDiv.length; i++)
    	{
    		var index = i;
    		if (eachDiv[i].addEventListener) //firefox
    			eachDiv[i].addEventListener('click', function(){alert(index)}, false);
    		else if (eachDiv[i].attachEvent) //IE
    			eachDiv[i].attachEvent('onclick', function(){alert(index)});
    }
    Ca donne toujours la valeur max du i n'importe ou je sais du coup vraiment pas quoi faire

  6. #6
    Fabouney
    Invité(e)
    Par défaut
    merde désolé, j'ai oublié de te dire de changer aussi :

    en


  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function	assignFct()
    {
    	eachDiv	= document.body.getElementsByTagName("div");
    	for (i = 0; i < eachDiv.length; i++)
    	{
    		var index = i;
    		if (eachDiv[index].addEventListener)
    			eachDiv[index].addEventListener('click', function(){alert(index)}, false);
    		else if (eachDiv[index].attachEvent)
    			eachDiv[index].attachEvent('onclick', function(){alert(index)});
    	}
    }
    Toujours le meme probleme tu penses que le fait de passer par index placera sur chaque div une valeur precise? car malheureusement ca donne toujours le meme resultat Tu penses qu'il est possible de le faire?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function	assignFct()
    {
    	eachDiv	= document.body.getElementsByTagName("div");
    	for (i = 0; i < eachDiv.length; i++)
    	{
    		eachDiv[index].indice=i;
                    eachDiv[index].onclick=function(){alert(this.indice)};
    	}
    }
    c'est dasn la FAQ ou dans les contributions ...

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    Points : 233
    Points
    233
    Par défaut
    C'est juste que je savais pas trop ou chercher Mais en tout cas merci beaucoup !!! j'avais vraiment pas pensé a cette methode mais maintenant que je l'ai pigé je vais l'utiliser a tout bout de champ
    Merci

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

Discussions similaires

  1. probleme setAttribute onmouseqlq sous IE - pb d'event inside
    Par xhak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/03/2006, 17h23
  2. [Struts] - Problème avec un request.setAttribute
    Par renotm dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/02/2006, 10h00
  3. pb avec setAttribute sous IE
    Par pekka77 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 13/01/2006, 22h44
  4. setAttribute et compatibilité navigateurs .°/ ?
    Par Lareine dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 29/10/2005, 01h03
  5. [Débutante][jsp] request.setAttribute()
    Par phoebe dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 14/05/2004, 14h27

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