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 :

Attacher un event à élement creer par le DOM


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut Attacher un event à élement creer par le DOM
    Bonjour,
    J'ai cette petite fonction qui permet d'attacher un event à un élement créé dynamiquement par le DOM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    registerEvent = function(on, ev, func, capture) {
    	if (window.addEventListener)
    		on.addEventListener(ev, func, capture);
    	else {
    		if (!on.funcsCounter) on.funcsCounter = 0;
    		on['func'+on.funcsCounter] = func;
    		on.funcsCounter++;
    		on.attachEvent("on"+ev, function() { for(var i=0; i<on.funcsCounter; i++) on['func'+i](); });
    	}
    }
    et on l'utilise de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    registerEvent(document.getElementById('myLink'), 'click', function() {
     
    this.style.color = '#f00';
     
    this.style.fontWeight = 'bold';
     
    });
    Pourquoi mon code ci-dessous pose problème ?
    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
     
    registerEvent = function(on, ev, func, capture) {
    	if (window.addEventListener)
    		on.addEventListener(ev, func, capture);
    	else {
    		if (!on.funcsCounter) on.funcsCounter = 0;
    		on['func'+on.funcsCounter] = func;
    		on.funcsCounter++;
    		on.attachEvent("on"+ev, function() { for(var i=0; i<on.funcsCounter; i++) on['func'+i](); });
    	}
    }
     
    fillservices = function() { 
                               alert(this.value);
                   }
     
    monInput = document.createElement("<input name='services'>");
    monInput.type = "radio"; 
    var monInputId = monInput.id = 'services'+items[i].getElementsByTagName('valeur')[0].firstChild.nodeValue;
    monInput.value = items[i].getElementsByTagName('valeur')[0].firstChild.nodeValue;
    document.body.appendChild(monInput);
     
    registerEvent(document.getElementById(monInputId), 'click', fillservices);
    Merci d'avance...

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par okoweb Voir le message
    Pourquoi mon code ci-dessous pose problème ?
    Ah, parce qu'il pose problème ?

    Dans ce cas, une description précise de ce qui se passe serait la bienvenue.

    De même que le fait de savoir si tu récupères une erreur, et si oui, laquelle et sur quelle ligne

    EDIT : Une piste potentielle : tous les caractères ne sont pas autorisés dans un id ...

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Mon soucis est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    registerEvent(document.getElementById(monInputId), 'click', fillservices);
    La fonction n'est pas déclenchée au clic sur mon input.

    Merci pour votre aide...

  4. #4
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    EDIT : Une piste potentielle : tous les caractères ne sont pas autorisés dans un id ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Points : 460
    Points
    460
    Par défaut
    Bizarrement après avoir redémarrer ma machine, ca marche.

    Merci.

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par okoweb Voir le message
    Bizarrement après avoir redémarrer ma machine, ca marche.
    C'est encore plus inquiétant que bizarre

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2007, 17h12
  2. recuperer valeur d'une grille creer par javascript
    Par ouedmouss dans le forum JSF
    Réponses: 1
    Dernier message: 29/09/2006, 10h56
  3. Aide pour protéger un logiciel creer par delphi
    Par osma_1978 dans le forum Delphi
    Réponses: 2
    Dernier message: 02/09/2006, 22h50
  4. Réponses: 11
    Dernier message: 15/04/2005, 15h42
  5. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53

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