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 :

Ajouter des évènements dynamiquement dans un pop-up


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut Ajouter des évènements dynamiquement dans un pop-up
    Bonjour à tous !

    Je développe un site qui nécessite l'intervention de Pop-up... or, je remplis ces pop-up via Javascript. Je crée des éléments : ça marche, j'attribue id et class à chacun : ça marche, j'attache des événements à chaque élément : là, ça ne marche plus !
    Pourtant j'ai testé plusieurs moyens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    element.onmouseover("fonction()")
    // ou
    element.attachEvent("onmouseover", "fonction()");
    Y'a-t-il une marche spéciale à suivre pour ce genre de traitement dans un pop-up ? Un DOCTYPE à ajouter ?

    A noter que, pour le moment, je travaille sur Firefox.


    Merci d'avance !

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Les évènements sont des propriétés, pas des méthodes.

    De plus, pour FF il faut utiliser addEventListener

    Un peu plus de recherches t'auraient apporté réponses à tes questions.

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    De plus, il faut que les fonctions appelées existent dans le contexte de ta pop up

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    De plus, pour FF il faut utiliser addEventListener
    J'ai confondu attachEvent, et addEventListener ! Avec ce dernier, je n'ai plus d'erreur... mais ça ne marche toujours pas !

    Mon problème : mon pop-up contient un tableau de des boutons correspondants chacun à une thématique, et je souhaite qu'au survol, la description correspondante (qui se trouve dans la case juste au-dessous) s'affiche. Rien de bien compliqué à priori...

    Voilà ma fonction qui remplit mon pop-up (à partir de deux tableaux définis précédemment), suivie des fonctions d'affichage des descriptions :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    function tableauThematiques()
    {
    	tableau=ID('tabGlobalThem');
    	var j=0;
     
    	for(var i=0; i<=tabThem.length-1; i++)
    	{
    		var lien = document.createElement('a')
    			lien.href='#';
    			lien.id=formater(tabThem[i]);
    			lien.className='choix_thematique';
    		var spanlien = document.createElement('span');
    			spanlien.innerHTML=tabThem[i];
     
    		var spandesc = document.createElement('span');
    			spandesc.innerHTML=tabDesc[i];
    			spandesc.className='desc_choix_thematique';
    			spandesc.id='desc_'+lien.id;
     
    		lien.appendChild(spanlien);
     
    		j=j+1;
    		var lig=tableau.insertRow(j);
     
    		var col=lig.insertCell(0);
    			col.appendChild(lien);
     
    		j=j+1;
    		var lig=tableau.insertRow(j);
    		col=lig.insertCell(0);
    			col.appendChild(spandesc);
     
    			lien.addEventListener("mouseover", showDesc, false);
    			lien.addEventListener("mouseout", hideDesc, false);
    	}
    }
     
    function showDesc()
    {
    	ID('desc_'+this.id).style.visibility=='visible';
    }
     
    function hideDesc()
    {
    	ID('desc_'+this.id).style.visibility=='hidden';
    }
    Ce code ne me renvoit aucune erreur dans la console, mais pourtant, le survol ne donne rien

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    function showDesc()
    {
    ID('desc_'+this.id).style.visibility=='visible';
    }
    Attention, ici 'this' se réfère à l'objet window.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Je me doutais que ce "this" était un peu foireux, mais si je donne des arguments au callback, ça me renvoit une erreur sur le type d'arguments ... que dois-je faire ?

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Je suis de retour de vacances, et je vois avec tristesse qu'il n'y a pas plus de réponse sur mon problème... personne n'est inspiré ?

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,

    dans ta page mère (si tes éléments sont créés à partir de là) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taPopUp.document.getElementById("idElement").onmouseover = function(){fonction()}
    avec fonction() définie dans la pop-up

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Mes éléments sont définis dans un script js appelé par le pop-up par <body onload="initiation()">

  10. #10
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    dans ce cas un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("idElement").onmouseover = function(){fonction()}
    doit faire l'affaire

  11. #11
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Merci pour ta réponse Auteur ... j'ai changé de poste hier, et je ne peux pas tester, mais je vais essayer ça ce soir, et je te dirais quoi demain !

  12. #12
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Ca ne marche pas...
    Voici ce que j'ai écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    lien.onmouseover = function(){
    document.getElementById('desc_'+this.id).style.visibility=='visible';
    }
    Sachant que le survol est censé provoquer l'affichage de la description (id = desc_lien_x) du lien ( id = lien_x ).

    Pour le moment je pars sur une autre solution pour ne pas avoir à ajouter d'évènement de cette manière, mais, ne serait-ce que pas curiosité, j'aimerais assez savoir comment faire !

  13. #13
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    this.id désigne quoi ?

  14. #14
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 156
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par Auteur Voir le message
    this.id désigne quoi ?
    L'identifiant de l'élément "lien".

Discussions similaires

  1. ajouter des lignes dynamiquement dans un JTable
    Par Jolt0x dans le forum Composants
    Réponses: 6
    Dernier message: 15/05/2014, 16h32
  2. ajouter des images dynamiquement dans crystal
    Par zilis dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 10/10/2011, 12h19
  3. [SP-2007] Ajout des lien dynamique dans une liste déroulante
    Par nouvintou dans le forum SharePoint
    Réponses: 2
    Dernier message: 15/03/2011, 11h31
  4. [SP-2007] Ajouter des champs dynamiquement dans une cutom list
    Par takuan64 dans le forum SharePoint
    Réponses: 8
    Dernier message: 26/07/2010, 14h12
  5. Réponses: 3
    Dernier message: 21/06/2009, 15h16

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