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 :

Conseil pour fonction addeventlistener


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Par défaut Conseil pour fonction addeventlistener
    Salut a tous,

    Voila j'ai u petit soucispour rendre actif les fonction addeventlistener en javascript.
    Je m'explique : je dispose d'un catalogue qui charge des images en dynamique en fonction d'une requete sql et lorsque j'utilise les fonctions onmouseout et onmouseover sur les images dans le code html ca ne marche pas.
    L'idée est de faire un agrandi des images dans une infobulle au survol de la souris.
    Donc j'ai pensé forcé la detection des evenements en utilisant un peu javascript et comme je suis un novice je n'arrive pas a le faire marcher.
    J'ai aussi essayé d'utiliser le event observer de prototype vainement.
    J'a cherché sur le net et je n'ai trouvé que des exemples incomplets ou il n'y avait pas la syntaxe precise et surtout un moyen de rendre actif ces fonctions.
    Comme un long discours est inutile voici le code que j'essaie d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function addListener(element, type, expression, bubbling){
    	bubbling = bubbling || false; 	
                 if(window.addEventListener)	{ // Standard		element.addEventListener(type, expression, bubbling);		return true;	}
                 else if(window.attachEvent) { // IE	
    	element.attachEvent('on' + type, expression);	
    	return true;	}
                 else return false;}

    element : le nom de l'element sur lequel attacher l'evenement
    type : nom de l'evenement
    expresion le nom de ma fonction
    bubbling true ou false ( je met false)

    Ou dois je appeler la fonction adlistener : dans la balise body sur un onload?
    " ou ' pour mes parametres
    Si quelqu'un a une meilleure idee je suis preneur

    Je vous remercie pour votre aide

    sTRASHA

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Avant d'aller plus loin,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.addEventListener)	{ // Standard		element.addEventListener(type, expression, bubbling);		return true;	}
    Cette ligne est aussi sur une seule ligne dans ton script ? Auquel cas, cela posera nécessairement des problèmes
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 16
    Par défaut
    Salut,

    En tout premier lieu merci de t'interesser a mon cas

    voici mon code exact

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function addListener('img', "mouseover", changerTexte(), bubbling){
    	bubbling = bubbling || false;
    	if(window.addEventListener)	{ // Standard
    		element.addEventListener("mouseover", changerTexte(), bubbling);
    		return true;	}
    	else if(window.attachEvent) { // IE
    		element.attachEvent("onmouseover", changerTexte());
    		return true;	}
    	else return false;}
     
    function changerTexte(){
    	alert('Ok');
    }
    Le fait que ce soit sur une meme ligne vient simplement d'un mauvais copier coller.

    Ensuite je rajoute la balise <body onload="addListener()";>

    Je ne comprend pas pouruoi ca marche po!!!!

    A plus

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    element.addEventListener("mouseover", changerTexte(), bubbling);
    Dans le contexte de ta fonction, 'element' n'existe pas
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    il ne sert à rien de passer le paramètre bubbling à ta fonction. il ne peut qu'être à false si tu veux le même comportement que sur IE.

    il ne faut pas mettre les parenthèses pour changerTexte... sinon tu exécutes la fonction. or toi tu veux enregistrer un callback sur un événement.

Discussions similaires

  1. [PHP 5.1] Besoin de conseil pour optimiser une fonction
    Par renaud26 dans le forum Langage
    Réponses: 3
    Dernier message: 14/08/2017, 08h11
  2. demande de conseille pour un probleme sur une fonction
    Par pierre-y dans le forum Général Python
    Réponses: 4
    Dernier message: 19/12/2012, 11h34
  3. conseils pour fonction récurcive
    Par dominos dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/07/2010, 09h38
  4. [AJAX] Un conseil pour améliorer cette fonction d'appel générique ?
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 11/12/2008, 13h20
  5. Conseils pour améliorer ma fonction
    Par Sergio29 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/11/2007, 16h50

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