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 :

[IE] Boucle for, truc de fou


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut [IE] Boucle for, truc de fou
    Bonjour à tous,

    Ca fait une heure que j'essaye de débugger ce satané code IE.
    Tout fonctionne sous FF comme d'hab.
    Sous IE 7, c'est surprenant !

    Voici mon code optimisé IE :
    Code Javascript : 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
    var tab=new Array();
    var tab_img=new Array('ac', 'pk', 'bp', 'ht');
     
    function zoom(container, maxWidth, maxHeight, minWidth, minHeight){
    	for(var i=0; i<tab_img.length; i++){
    		tab[i]=false;
    		var newimg=document.createElement('img');
    		newimg.setAttribute('src', 'img/'+tab_img[i]+'.gif');
    		newimg.setAttribute('id', 'img'+i);
    		newimg.style.setAttribute('cssText', 'width:'+minWidth+'px; height:'+minHeight+'px;');
    		newimg.setAttribute("onclick", function(){alert('Play '+i);});
    		document.getElementById(container).appendChild(newimg);
    	}
    }
    window.onload=function(){	
    	zoom('area', 68, 107, 34, 54);
    }

    Dans mon HTML, j'ai juste
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="area"></div>

    Donc toutes mes images ont un onclick="alert('Play 4');" !!?
    C'est fou.. je me suis lu et relu. Je vois pas où j'ai merdé.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var newimg=document.createElement('img');
    newimg.setAttribute('src', 'img/'+tab_img[i]+'.gif');
    newimg.setAttribute('id', 'img'+i);
    newimg.style.setAttribute('cssText','width:'+minWidth+'px;height:'+minHeight+'px;');
    newimg.setAttribute("onclick", function(){alert('Play '+i);});
    document.getElementById(container).appendChild(newimg);
    document.getElementById('img'+i).onclick = function(){alert('Play '+i);};
    A+

  3. #3
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Euh, à moins que je ne me trompe, ça ne changera rien. Javascript étant synchrone c'est la dernière valeur de la boucle qui sera affectée à tous les élements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		document.getElementById('img'+i).onclick = function(num) {
    			return function(){
    				alert('Play '+num);
    			};
    		}(i);

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    j'ai déja collé un truc sur ça dasn la FAQ ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for(var i=0; i<tab_img.length; i++){
    		tab[i]=false;
    		var newimg=document.createElement('img');
    		newimg.src= 'img/'+tab_img[i]+'.gif';
                    newimg.indice=i;
    		newimg.id='img'+img.indice;
    		newimg.style.cssText='width:'+minWidth+'px; height:'+minHeight+'px;';
    		newimg.onclick=function(){alert('Play '+this.indice);});
    		document.getElementById(container).appendChild(newimg);
    	}
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    j'ai déja collé un truc sur ça dasn la FAQ ...
    Il me semblait, mais j'ai pas retrouvé

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ou dans les contributions ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Par défaut
    Il n'y a que la méthode Shinuza qui fonctionne..
    Merci les mecs !

    Bon désolé mais je donne le point à Shinuza.

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Oui bon une paire de coquilles dasn le script ...

    mais ça marche ... pour preuve :

    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
    <script type='text/javascript'>
    function MyRandomMess(){
    var tab_img=new Array(10); 
     
    for(i=0; i<tab_img.length; i++){
    		var newimg=document.createElement('div');
           newimg.indice=i;
    		newimg.id='img'+newimg.indice;
    		newimg.style.cssText='width:100px; height:100px;backgroundColor:red;border:solid 2px blue;';
    		newimg.onclick=function(){alert('Play '+this.indice)};
    		document.getElementById('container').appendChild(newimg);
    	}
    }
    </script>
    </head>
     
    <body onload="MyRandomMess()">
    <div id="container"></div>
    </body>
     
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [Débutant] une boucle for me rend fou.
    Par SirDarken dans le forum Langage
    Réponses: 6
    Dernier message: 12/09/2006, 23h25
  2. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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