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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    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 expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    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 expérimenté
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 221
    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


+ 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